Salve a tutti.
Devo sviluppare un'applicazione per android che utilizzi il bluetooth.
Per iniziare a provare ho seguito i tutorial del sito e ho realizzato due applicazione una client e una server che si scambiano dati e la connessione avviene tramite l'UUID.
Il server si mette in ascolto mediante questa funzione:
listenUsingRfcommWithServiceRecord()
e il client si connette utilizzando questa:
createRfcommSocketToServiceRecord(UUID)
e l'elemento comune e' l'uuid.
Ora per esigenze particolari devi effettuare una connessione senza utilizzare l'uuid.
Leggendo qua e la su google ho scoperto che esistono dei metodi "nascosti" da chiamare via reflect.
Uno di questi e': createRfcommSocket la cui controparte server potrebbe essere: listenUsingRfcommOn
Quello che succede e':
1) i metodi esistono perche' non mi da errore di tipo NoSuchMethodError
2) il server parte senza dare errori, apparentemente listenUsingRfcommOn funziona
3) createRfcommSocket da invece dei problemi; la connect torna ok pero' poi ho errori di read-write sugli Input/Output Stream.
La cosa strana e' che se, ad esempio, lancio il client senza il server il metodo torna subito ok (come se fosse andato bene) mentre avrebbe dovuto provare un po' a connettersi e poi dare un errore di timeout o di servizio non trovato (come capita quando uso createRfcommSocketToServiceRecord)
La mia impressione e' che createRfcommSocket ritorni automaticamente un socket fittizio, senza neanche provare a fare la connessione.
Sto usando android 2.1 e ho provato su terminali HTC Desire, Nexus One e Galaxy I9000.
qualcuno mi sa dire qualcosa?
ciao e grazie
Sandro