Приложение для Android отключено без каких-либо предупреждений и ошибок при вызове bluetoothServersocket.close() в основном потоке, в то время как bluetoothServersocket.accept(); был заблокирован для входящих соединений в другом потоке.
Вот фрагменты моего кода.
public void run() {
попробуйте {
bluetoothServerSocket = BluetoothAdapter. getDefaultAdapter(). listenUsingRfcommWithServiceRecord (LISTEN_NAME, LISTEN_UUID);
/* поток заблокирован для входящих соединений */
bluetoothSocket = bluetoothServerSocket.accept();
...
} catch (Исключение e) {} наконец {
try {bluetoothServerSocket.close();} catch (Exception ex) {}
try {bluetoothSocket.close();} catch (Exception ex) {}
}
}
И в действии.
public void onStop() {
попробуйте {thread.bluetoothSocket.close();} catch (Exception ex) {}
try {thread.bluetoothServerSocket.close();} catch (Exception ex) {}
super.onStop();
}
Когда я нажал кнопку "Назад". Активность закрыта, но примерно через одну секунду приложение покидает приложение без предупреждения.
Моя версия Android версии 2.2. устройство HTC Desire.
Мы должны закрыть соединение Bluetooth следующим образом:
попробуйте {synchronized (bluetoothServerSocket) {bluetoothServerSocket.close();}} catch (Exception ex) {}