JABWT: Service Discovery

Una volta capito come poter fare il Device Discovery vediamo come poter trovare dei servizi nei dispositivi BT grazie al Service Discovery

Se nel precedente articolo facevamo una ricerca di device all’interno del range di funzionamento del BT, ora il nostro scopo è trovare dei servizi disponibili all’interno dei device raggiungibili. Prima di tutto dobbiamo ottenere un nostro DiscoveryAgent come fatto nel precedente articolo tramite l’oggetto LocalDevice e avviare la ricerca.

Nell’interfaccia DiscoveryListener che abbiamo visto in precedenza non avevamo implementato i metodi relativi ai servizi, servicesDiscovered e serviceSearchCompleted

Ora dobbiamo usare il nostro agente per fare una ricerca di servizi sulla device, il listener poi sarà notificato degli eventi.

I record di servizi che andiamo a trovare non sono altro che array in cui vengono memorizzati un ID del servizio e il loro valore associato. Un UUID è un identificativo unico che fà capire al nostro codice che stiamo accedendo ad un certo tipo di risorsa su una certa device.

Il tipo di dato che tratta è il DataElement, che permette tramite le API Java ai programmatori di accedere a tutte le informazioni di cui abbiamo bisogno (vedere JavaDocs di DataElement per maggiori dettagli). Ecco un esempio di codice:

In questo esempio stiamo facendo una ricerca solo di un certo UUID, ovvero un utente PAN (Personal Area Networking Profile). Per maggiori dettagli sui servizi e il loro significato vi rimando alla documentazione BlueTooth.

Inoltre richiediamo di trovare anche un attributo in più che e’ l’URL della Documentazione (0x0009). Gli attributi standard che vengono comunque trovati in una ricerca sono ServiceRecordHandle (0x0000), ServiceClassIDList(0x0001), ServiceRecordState (0x0002), ServiceID (0x0003) e ProtocolDescriptorList (0x0004).

Ora se tutto è andato a buon fine, non resta che esaminare i Service Record che abbiamo ottenuto dalla ricerca. In questo caso se abbiamo trovato una sorta di URL della documentazione cerchiamo magari di memorizzarlo o di visionarlo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *