2012-12-28 14 views
6

Sto iniziando a lavorare su Bluetooth in Android di recente. Voglio costruire un'applicazione in grado di leggere i dati registrati da un sensore tramite bluetooth.Android Trova l'UUID di uno specifico dispositivo bluetooth

ho qualche codice di esempio, ma sembra che ho bisogno di un altro UUID di un device.It diversa si presenta così:

private static final UUID MY_UUID = UUID 
       .fromString("00001101-0000-1000-8000-00805F9B34FB"); 

Più avanti nel codice, si utilizza questo UUID per effettuare una connessione:

tmp = device.createRfcommSocketToServiceRecord(MY_UUID); 

Ho fatto qualche ricerca online, come [qui] [1]. Penso di aver bisogno di un numero UUID diverso per il nuovo dispositivo su cui sto lavorando. Come ottengo il numero UUID?

Sul dispositivo, ci sono due linee di numero dicendo:

SN: 1201L0023
BT: 10: 00: E8: C5: 16: 85

grazie in anticipo!

Jake

risposta

11

UUID non sono legate a particolari dispositivi. Identificano i servizi software. Alcuni UUID per profili definiti sono impostati da BT. Gli UUID utilizzati con socket RFCOMM come il tuo esempio sono arbitrari. Hai solo bisogno di entrambi i lati per usare lo stesso. In generale, i dispositivi si connettono e quindi utilizzano il protocollo di individuazione del servizio per scoprire quali servizi (UUID) sono supportati sul dispositivo remoto.

+0

Penso che "00001101-0000-1000-8000-00805F9B34FB" sia l'UUID più comune (in base a questo: http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#createRfcommSocketToServiceRecord% 28java.util.UUID% 29) Non capisco "è necessario che entrambe le parti usino lo stesso" nella risposta. Come ci si accerta che sia il telefono (che esegue l'applicazione) che il sensore (raccolta dati) abbiano lo stesso UUID? Grazie per la risposta –

+4

Questo è l'unico UUID per SPP (profilo porta seriale). Se il tuo sensore implementa SPP, allora usi quell'UUID. Ma i dispositivi potrebbero anche utilizzare i socket RFCOMM senza eseguire SPP, nel qual caso l'UUID potrebbe essere arbitrario. Le tue risposte dovrebbero essere trovate nella documentazione del tuo sensore. – TJD

+0

Grazie per il tuo aiuto! –

Problemi correlati