Salve a tutti,
ho problemi di connessione bluetooth, utilizzando questo codice, tra il mio Samsung (API 16) e il mio pc (Windows 8.1). in particolare l'associazione tra i dispositivi avviene solo se richiesta dal pc, e dura comunque pochi secondi, dopodiché il cellulare passa di nuovo allo stato di associato. Ho controllato più volte le impostazioni bluetooth del mio computer, ma non ho risolto il problema. Lo stesso si verifica se tento di connettermi ad uno smartphon con Windows phone. La connessione rimane invece stabile se mi connetto a cellulari Android con API vicine alla 16.
Qualcuno saprebbe gentilmente dirmi quali sono le possibile cause di questo problema ? E in caso, come risolverle ?
Vi ringrazio anticipatamente per la risposta :-)
public class ConnectThread extends Thread {
public UUID my_UUID;
public ParcelUuid[] parceluuids;
public BluetoothSocket mmSocket;
public BluetoothDevice mmDevice;
int num_uuids;
// E' il costruttore del thread
public ConnectThread(BluetoothDevice device) {
BluetoothSocket tmp = null;
mmDevice = device;
parceluuids = device.getUuids();
// num_uuids = parceluuids.length;
my_UUID = parceluuids[0].getUuid();
try {
tmp = device.createRfcommSocketToServiceRecord(my_UUID);
Log.i("MESSAGGIO","ACQUISITO IL SOCKET");
} catch (IOException e) {
Log.e("ERRORE","IL SOCKET NON E' STATO ACQUISITO");
}
mmSocket = tmp;
}
public void run() {
Statistiche_2.B_adapter.cancelDiscovery();
Log.i("INFO","TERMINATA LA RICERCA DI DISPOSITVI");
try {
if (!mmSocket.isConnected()) {
Log.i("INFO", "SOCKET NON CONNESSO");
mmSocket.connect();
}
if(mmSocket.isConnected()){
Log.i("INFO", "SOCKET CONNESSO");
/** INVIO DEI DATI **/
Invia invia = new Invia(mmSocket);
invia.start();
}
}
catch (IOException connectException) {
try {
mmSocket.close();
Log.e("ERRORE","NON RIESCO A CONNETTERMI, UUID = " + my_UUID.toString());
}
catch (IOException closeException) {
Log.e("ERRORE","NON RIESCO A CHIUDERE IL SOCKET");
}
}
}