Приложение Android неожиданно завершило работу, когда я закрыл сокет bluetooth serversocket или bluetooth

1

Приложение для 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

1 ответ

1
Лучший ответ

Мы должны закрыть соединение Bluetooth следующим образом:

попробуйте {synchronized (bluetoothServerSocket) {bluetoothServerSocket.close();}} catch (Exception ex) {}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню