Sto eseguendo l'esempio della chat Bluetooth dal pacchetto di esempio di Android SDK 4.2 senza modifiche al codice. Il mio obiettivo è un Nexus 7 con Android 4.2.2. Ottengo questi errori non appena cerco un collegamento sicuro a un dispositivo associato. Anche Connect Insecure non funziona, con conseguenti errori simili. Occasionalmente, dopo aver riavviato BT, la connessione avrà esito positivo.Bluetooth Secureaccept() non riuscito, Nexus 7, Android 4.2.2
Ho cercato questo e ho visto molti riferimenti ai probes BT su Android 4, ma ho pensato che avrebbero dovuto essere risolti nelle successive 4.2 release. Il Nexus 7 è il mio unico dispositivo quindi mi chiedo se ciò avvenga su altri dispositivi.
Esiste una soluzione alternativa per questo problema? Grazie in anticipo per qualsiasi consiglio!
AGGIORNAMENTO: Dopo ulteriori indagini, ho trovato this link, che indica che c'è una perdita nello stack di risorse BT, ancora presente in 4.2.2, che può essere risolto arrestando/riavviando manualmente BT. Qualcuno ha trovato una soluzione programmatica?
04-16 08:50:48.505: E/BluetoothChat(28905): +++ ON CREATE +++
04-16 08:50:48.535: E/BluetoothChat(28905): ++ ON START ++
04-16 08:50:48.535: D/BluetoothChat(28905): setupChat()
04-16 08:50:48.535: E/BluetoothChat(28905): + ON RESUME +
04-16 08:50:48.535: D/BluetoothChatService(28905): start
04-16 08:50:48.535: D/BluetoothChatService(28905): setState() 0 -> 1
04-16 08:50:48.545: W/BluetoothAdapter(28905): getBluetoothService() called with no BluetoothManagerCallback
04-16 08:50:48.545: D/BluetoothChatService(28905): Socket Type: SecureBEGIN mAcceptThreadThread[Thread-9834,5,main]
04-16 08:50:48.545: W/BluetoothAdapter(28905): getBluetoothService() called with no BluetoothManagerCallback
04-16 08:50:48.545: D/BluetoothChatService(28905): Socket Type: InsecureBEGIN mAcceptThreadThread[Thread-9835,5,main]
04-16 08:50:48.555: I/BluetoothChat(28905): MESSAGE_STATE_CHANGE: 1
04-16 08:50:48.615: D/libEGL(28905): loaded /system/lib/egl/libEGL_tegra.so
04-16 08:50:48.635: D/libEGL(28905): loaded /system/lib/egl/libGLESv1_CM_tegra.so
04-16 08:50:48.645: D/libEGL(28905): loaded /system/lib/egl/libGLESv2_tegra.so
04-16 08:50:48.675: D/OpenGLRenderer(28905): Enabling debug mode 0
04-16 08:52:08.625: E/BluetoothChat(28905): - ON PAUSE -
04-16 08:52:08.755: D/dalvikvm(28905): GC_CONCURRENT freed 134K, 4% free 7529K/7792K, paused 3ms+3ms, total 29ms
04-16 08:52:10.115: D/BluetoothChat(28905): onActivityResult -1
04-16 08:52:10.115: D/BluetoothChatService(28905): connect to: C8:D1:5E:2F:12:E8
04-16 08:52:10.115: D/BluetoothChatService(28905): setState() 1 -> 2
04-16 08:52:10.115: I/BluetoothChatService(28905): BEGIN mConnectThread SocketType:Secure
04-16 08:52:10.115: E/BluetoothChat(28905): + ON RESUME +
04-16 08:52:10.125: W/BluetoothAdapter(28905): getBluetoothService() called with no BluetoothManagerCallback
04-16 08:52:10.125: D/BluetoothSocket(28905): connect(), SocketState: INIT, mPfd: {ParcelFileDescriptor: FileDescriptor[54]}
04-16 08:52:10.135: I/BluetoothChat(28905): MESSAGE_STATE_CHANGE: 2
04-16 08:52:11.645: D/BluetoothChatService(28905): connected, Socket Type:Secure
04-16 08:52:11.645: D/BluetoothChatService(28905): Socket TypeSecurecancel Thread[AcceptThreadSecure,5,main]
04-16 08:52:11.645: D/BluetoothChatService(28905): Socket TypeInsecurecancel Thread[AcceptThreadInsecure,5,main]
04-16 08:52:11.645: D/BluetoothChatService(28905): create ConnectedThread: Secure
04-16 08:52:11.655: E/BluetoothChatService(28905): Socket Type: Insecureaccept() failed
04-16 08:52:11.655: E/BluetoothChatService(28905): java.io.IOException: read failed, socket might closed or timeout, read ret: -1
04-16 08:52:11.655: E/BluetoothChatService(28905): at android.bluetooth.BluetoothSocket.readAll(BluetoothSocket.java:492)
04-16 08:52:11.655: E/BluetoothChatService(28905): at android.bluetooth.BluetoothSocket.waitSocketSignal(BluetoothSocket.java:469)
04-16 08:52:11.655: E/BluetoothChatService(28905): at android.bluetooth.BluetoothSocket.accept(BluetoothSocket.java:393)
04-16 08:52:11.655: E/BluetoothChatService(28905): at android.bluetooth.BluetoothServerSocket.accept(BluetoothServerSocket.java:131)
04-16 08:52:11.655: E/BluetoothChatService(28905): at android.bluetooth.BluetoothServerSocket.accept(BluetoothServerSocket.java:117)
04-16 08:52:11.655: E/BluetoothChatService(28905): at com.example.android.BluetoothChat.BluetoothChatService$AcceptThread.run(BluetoothChatService.java:301)
04-16 08:52:11.655: D/BluetoothChatService(28905): setState() 2 -> 3
04-16 08:52:11.655: I/BluetoothChatService(28905): END mAcceptThread, socket Type: Insecure
04-16 08:52:11.655: E/BluetoothChatService(28905): Socket Type: Secureaccept() failed
04-16 08:52:11.655: E/BluetoothChatService(28905): java.io.IOException: read failed, socket might closed or timeout, read ret: -1
04-16 08:52:11.655: E/BluetoothChatService(28905): at android.bluetooth.BluetoothSocket.readAll(BluetoothSocket.java:492)
04-16 08:52:11.655: E/BluetoothChatService(28905): at android.bluetooth.BluetoothSocket.waitSocketSignal(BluetoothSocket.java:469)
04-16 08:52:11.655: E/BluetoothChatService(28905): at android.bluetooth.BluetoothSocket.accept(BluetoothSocket.java:393)
04-16 08:52:11.655: E/BluetoothChatService(28905): at android.bluetooth.BluetoothServerSocket.accept(BluetoothServerSocket.java:131)
04-16 08:52:11.655: E/BluetoothChatService(28905): at android.bluetooth.BluetoothServerSocket.accept(BluetoothServerSocket.java:117)
04-16 08:52:11.655: E/BluetoothChatService(28905): at com.example.android.BluetoothChat.BluetoothChatService$AcceptThread.run(BluetoothChatService.java:301)
04-16 08:52:11.655: I/BluetoothChatService(28905): END mAcceptThread, socket Type: Secure
04-16 08:52:11.655: I/BluetoothChatService(28905): BEGIN mConnectedThread
04-16 08:52:11.665: I/BluetoothChat(28905): MESSAGE_STATE_CHANGE: 3
04-16 08:52:36.985: E/BluetoothChat(28905): - ON PAUSE -
04-16 08:52:37.005: E/BluetoothChat(28905): -- ON STOP --
04-16 08:52:37.015: D/BluetoothChatService(28905): stop
04-16 08:52:37.015: E/BluetoothChatService(28905): disconnected
04-16 08:52:37.015: E/BluetoothChatService(28905): java.io.IOException: bt socket closed, read return: -1
04-16 08:52:37.015: E/BluetoothChatService(28905): at android.bluetooth.BluetoothSocket.read(BluetoothSocket.java:416)
04-16 08:52:37.015: E/BluetoothChatService(28905): at android.bluetooth.BluetoothInputStream.read(BluetoothInputStream.java:96)
04-16 08:52:37.015: E/BluetoothChatService(28905): at java.io.InputStream.read(InputStream.java:163)
04-16 08:52:37.015: E/BluetoothChatService(28905): at com.example.android.BluetoothChat.BluetoothChatService$ConnectedThread.run(BluetoothChatService.java:454)
04-16 08:52:37.015: D/BluetoothChatService(28905): setState() 3 -> 0
04-16 08:52:37.015: E/BluetoothChat(28905): --- ON DESTROY ---
04-16 08:52:37.015: D/BluetoothChatService(28905): start
04-16 08:52:37.015: D/BluetoothChatService(28905): setState() 0 -> 1
04-16 08:52:37.025: W/BluetoothAdapter(28905): getBluetoothService() called with no BluetoothManagerCallback
04-16 08:52:37.045: D/BluetoothChatService(28905): Socket Type: SecureBEGIN mAcceptThreadThread[Thread-9842,5,main]
04-16 08:52:37.115: W/BluetoothAdapter(28905): getBluetoothService() called with no BluetoothManagerCallback
04-16 08:52:37.125: E/BluetoothChat(28905): +++ ON CREATE +++
04-16 08:52:37.125: D/BluetoothChatService(28905): start
04-16 08:52:37.125: D/BluetoothChatService(28905): setState() 1 -> 1
04-16 08:52:37.125: D/BluetoothChatService(28905): Socket Type: InsecureBEGIN mAcceptThreadThread[Thread-9843,5,main]
04-16 08:52:37.155: E/BluetoothChat(28905): ++ ON START ++
04-16 08:52:37.155: D/BluetoothChat(28905): setupChat()
04-16 08:52:37.155: E/BluetoothChat(28905): + ON RESUME +
04-16 08:52:37.155: D/BluetoothChatService(28905): start
04-16 08:52:37.155: D/BluetoothChatService(28905): setState() 0 -> 1
04-16 08:52:37.165: W/BluetoothAdapter(28905): getBluetoothService() called with no BluetoothManagerCallback
04-16 08:52:37.165: W/BluetoothAdapter(28905): getBluetoothService() called with no BluetoothManagerCallback
04-16 08:52:37.165: D/BluetoothChatService(28905): Socket Type: SecureBEGIN mAcceptThreadThread[Thread-9844,5,main]
04-16 08:52:37.175: D/BluetoothChatService(28905): Socket Type: InsecureBEGIN mAcceptThreadThread[Thread-9845,5,main]
04-16 08:52:37.215: I/BluetoothChat(28905): MESSAGE_STATE_CHANGE: 0
04-16 08:52:37.215: I/BluetoothChat(28905): MESSAGE_STATE_CHANGE: 1
04-16 08:52:37.225: I/BluetoothChat(28905): MESSAGE_STATE_CHANGE: 1
04-16 08:52:37.225: I/BluetoothChat(28905): MESSAGE_STATE_CHANGE: 1
4.3 Android non ha ancora risolto. –