Lezione Bluetooth sul codice java  client  Prof. Silvano Natalizi Classe IVAL,  Maggio 2009
Discovery <ul><li>Discovery è quell’attività che consente di trovarsi ai dispositivi Bloetooth  </li></ul><ul><li>Device d...
DeviceListener  <ul><li>Per ricercare altri dispositivi, chiedi alle istruzioni API Bluetooth di cominciare la ricerca e p...
Il codice di ricerca dispositivi <ul><li>Per iniziare la ricerca dispositivi,  </li></ul><ul><li>a) si chiede al dispositi...
Quando un device è trovato <ul><li>Il  metodo deviceDiscovered() è chiamato ogni qual volta l’agente trova un device. </li...
Parametri di input del metodo deviceDiscovered <ul><li>Ciascun dispositivo trovato è inviato al metodo deviceDiscovered() ...
Il codice del metodo deviceDiscovered()
inquiryCompleted() <ul><li>Al termina della fase di ricerca dispositivi </li></ul><ul><li>Abbiamo tutti i dispositivi trov...
la ricerca dei servizi <ul><li>Completata la ricerca dei dispositivi, si inizia la ricerca dei servizi di ciascun disposit...
Il codice del metodo inquiryCompleted() <ul><li>Nel metodo inquiryCompleted mettiamo solo l’istruzione che manda in esecuz...
Ricerca servizi <ul><li>Nel metodo ricerca servizi, si ricerca per ogni dispositivo trovato il servizio che ci interessa <...
I servizi <ul><li>I servizi sono rappresentati da UUID  universally unique identification number </li></ul><ul><li>Si crea...
searchServices() <ul><li>L’istruzione searchServices() esamina la lista dei servizi, del dispositivo che gli è sottoposto ...
Il codice del metodo ricercaServizi
Quando è scoperto un servizio <ul><li>L’istruzione searchServices(), ogniqualvolta scopre, nel dispositivo indagato, un se...
Il metodo servicesDiscovered <ul><li>A questo metodo è passato un oggetto ServiceRecord </li></ul><ul><li>Un serviceRecord...
Il codice del metodo servicesDiscovered
Fine ultimo del codice client <ul><li>Il risultato finale della device discovery e service discovery è quello di ottenere ...
Upcoming SlideShare
Loading in …5
×

Lezione Bluetooth Sul Codice Java Client

1,238 views

Published on

Come scoprire dispositivi bluetooth e i loro servizi

Published in: Education, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,238
On SlideShare
0
From Embeds
0
Number of Embeds
21
Actions
Shares
0
Downloads
21
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Lezione Bluetooth Sul Codice Java Client

  1. 1. Lezione Bluetooth sul codice java client Prof. Silvano Natalizi Classe IVAL, Maggio 2009
  2. 2. Discovery <ul><li>Discovery è quell’attività che consente di trovarsi ai dispositivi Bloetooth </li></ul><ul><li>Device discovery permette di trovare i dispositivi bluetooth nelle immediate vicinanze </li></ul><ul><li>Service discovery permette di trovare i servizi nei dispositivi trovati </li></ul>
  3. 3. DeviceListener <ul><li>Per ricercare altri dispositivi, chiedi alle istruzioni API Bluetooth di cominciare la ricerca e poi siediti mentre l’oggetto listener (ascoltatore) viene notificato sui dispositivi o servizi trovati </li></ul><ul><li>L’oggetto listener è un’implementazione della classe interfaccia DeviceListener </li></ul><ul><li>Questa interfaccia ha 4 metodi, 2 per il device discovery, 2 per il service discovery </li></ul>
  4. 4. Il codice di ricerca dispositivi <ul><li>Per iniziare la ricerca dispositivi, </li></ul><ul><li>a) si chiede al dispositivo “locale” di mettere a disposizione un “agente” discovery </li></ul><ul><li>b) si affida all’agente il metodo startInquiry() per iniziare la ricerca </li></ul>
  5. 5. Quando un device è trovato <ul><li>Il metodo deviceDiscovered() è chiamato ogni qual volta l’agente trova un device. </li></ul><ul><li>Pertanto questo metodo viene automaticamente mandato in esecuzione dal sistema durante la fase di ricerca iniziata dall’istruzione DiscoveryAgent.startInquiry(); </li></ul>
  6. 6. Parametri di input del metodo deviceDiscovered <ul><li>Ciascun dispositivo trovato è inviato al metodo deviceDiscovered() come un oggetto RemoteDevice </li></ul><ul><li>La sua classe di appartenenza che lo identifica come stampante, o come PC, o come Cellulare od altro dispositivo, viene pure passata al metodo deviceDiscovered() come un oggetto DeviceClass </li></ul>
  7. 7. Il codice del metodo deviceDiscovered()
  8. 8. inquiryCompleted() <ul><li>Al termina della fase di ricerca dispositivi </li></ul><ul><li>Abbiamo tutti i dispositivi trovati memorizzati, come oggetti RemoteDevice, all’interno dell’array deviceList </li></ul><ul><li>Automaticamente dal sistema viene mandato in esecuzione il metodo inquiryCompleted() </li></ul>
  9. 9. la ricerca dei servizi <ul><li>Completata la ricerca dei dispositivi, si inizia la ricerca dei servizi di ciascun dispositivo memorizzato nell’array deviceList </li></ul><ul><li>Questa ricerca viene mandata in esecuzione all’interno del metodo inquiryCompleted() </li></ul>
  10. 10. Il codice del metodo inquiryCompleted() <ul><li>Nel metodo inquiryCompleted mettiamo solo l’istruzione che manda in esecuzione una funzione specializzata nel ricercare per ogni dispositivo il servizio che ci interessa. </li></ul><ul><li>Pertanto passiamo a questa funzione in input l’array dei dispositivi trovati devicelist ed il servizio desiderato. </li></ul>
  11. 11. Ricerca servizi <ul><li>Nel metodo ricerca servizi, si ricerca per ogni dispositivo trovato il servizio che ci interessa </li></ul><ul><li>A tale scopo bisogna chiedere chiedere al dispositivo locale di metterci a disposizione un altro agente per fare la searchServices() </li></ul>
  12. 12. I servizi <ul><li>I servizi sono rappresentati da UUID universally unique identification number </li></ul><ul><li>Si crea un servizio specificando un UUID per mezzo di un numero esadecimale a 128 bit </li></ul>
  13. 13. searchServices() <ul><li>L’istruzione searchServices() esamina la lista dei servizi, del dispositivo che gli è sottoposto </li></ul><ul><li>Questa lista di servizi è inviata a searchServices() come un array di UUID </li></ul><ul><li>Pertanto anche se vogliamo ricercare un solo servizio, dobbiamo comunque inserirlo come un elemento di un array UUID </li></ul><ul><li>Il primo parametro di searchServices lo lasciamo a null </li></ul>
  14. 14. Il codice del metodo ricercaServizi
  15. 15. Quando è scoperto un servizio <ul><li>L’istruzione searchServices(), ogniqualvolta scopre, nel dispositivo indagato, un servizio che corrisponde ad uno di quelli cercati, manda in esecuzionea automaticamente il metodo servicesDiscovered(). </li></ul><ul><li>Quando è completata la ricerca dei servizi viene mandato in esecuzione automaticamente il metodo serviceSearchCompleted() </li></ul>
  16. 16. Il metodo servicesDiscovered <ul><li>A questo metodo è passato un oggetto ServiceRecord </li></ul><ul><li>Un serviceRecord descrive le proprietà di un servizio Bluetooth </li></ul>
  17. 17. Il codice del metodo servicesDiscovered
  18. 18. Fine ultimo del codice client <ul><li>Il risultato finale della device discovery e service discovery è quello di ottenere i Service-Record che forniscono le stringhe di collegamento tra client e server </li></ul>

×