Android Bluetooth: Connect()/Disconnect()

Actuellement, je suis en train de concevoir une application qui a besoin de se connecter à un appareil de lecture/écriture de données, et de fermer la connexion de manière fiable. Actuellement, j'ai de la lecture/écriture solide. Mon débranchez puis rebranchez est terriblement peu fiables, et souvent même de planter le téléphone.. et parfois de l'Éclipse. J'ai été à la recherche à travers de nombreux articles, essayer de le comprendre et.. pas de chance..

****FONCTION DE CONNEXION**

public boolean connect()
{
ConfigData.getInstance();
BluetoothSocket tmp = null;
BluetoothDevice device = ConfigData.m_SharedBluetoothDevice;
Method m;
try {
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);//(BluetoothSocket)
m.invoke(device, 1);
} catch (SecurityException e) { 
e.printStackTrace();
} catch (IllegalArgumentException e) {  
e.printStackTrace();
} 
catch (IOException e) {
e.printStackTrace();
}
ConfigData.m_SharedBluetoothSocket = tmp;
try {
ConfigData.m_SharedBluetoothSocket.connect();
ConfigData.bIsBTConnected = true;
} catch (IOException e) {
try {
closeSocket();
m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
tmp = (BluetoothSocket) m.invoke(device, 1);
} catch (SecurityException e1) {
e1.printStackTrace();
} catch (NoSuchMethodException e1) {
e1.printStackTrace();
} catch (IllegalArgumentException e1) {
e.printStackTrace();
} catch (IllegalAccessException e1) {
e.printStackTrace();
} catch (InvocationTargetException e1) {
e.printStackTrace();
}
ConfigData.m_SharedBluetoothSocket = tmp;
try {
ConfigData.m_SharedBluetoothSocket.connect();
ConfigData.bIsBTConnected = true;
} catch (IOException e1) {
ConfigData.m_BluetoothException += e1.toString();
ConfigData.bIsBTConnected = false;
return false;
}
e.printStackTrace();
return true;
}
return true;
}

****Débranchez La Fonction**

 public void destroySocket()
{
try {
if(m_InStream != null)
{
m_InStream.close();
m_InStream = null;
}
if(m_OutStream != null)
{
m_OutStream.close();
m_OutStream  = null;
}
if(ConfigData.m_SharedBluetoothSocket != null)
{
ConfigData.m_SharedBluetoothSocket.close();
ConfigData.m_SharedBluetoothSocket = null;
}
if(m_InStream == null && m_OutStream == null && ConfigData.m_SharedBluetoothSocket == null)
{
ConfigData.bIsBTConnected = false;
}
} catch (IOException e1) {
m_InStream = null;
m_OutStream  = null;
ConfigData.m_SharedBluetoothSocket = null;
e1.printStackTrace();
}
}

Si la déconnexion est couronnée de succès et renvoie tout nul. Le problème est que lorsque je reconnecte il bloque lors de la 2ème tentative de connexion et va soit rester là ou complètement planter le téléphone, causant plusieurs redémarrages.

Quelqu'un aurait-il des conseils ici? Son été extrêmement frustrant. Toute aide serait grandement appréciée!!

Grâce et Concert 'Em!
TxAg

InformationsquelleAutor TxAg | 2010-08-19