2013-04-16 10 views
5

Android SDK 4.2サンプルパックからBluetoothチャットサンプルを実行していますが、コードは変更されていません。私のターゲットは、Android 4.2.2を実行しているNexus 7です。ペアリングされたデバイスへのセキュア接続を試みるとすぐにこれらのエラーが発生します。 Connect Insecureも失敗し、同様のエラーが発生します。場合によっては、BTを再起動すると接続が成功します。Bluetooth Secureaccept()に失敗しました、Nexus 7、Android 4.2.2

私はこれを調べて、Android 4のBT probsへの参照をたくさん見ましたが、その後の4.2リリースで修正されているはずだと思いました。 Nexus 7は私の唯一のデバイスなので、これが他のデバイスで発生するかどうかは疑問です。

この問題の回避策はありますか?ご指導いただきありがとうございます!

更新:さらに調査した結果、BTリソーススタックにリークがあり、まだ4.2.2にあり、手動でBTを停止/再開することで解決できることを示すthis linkが見つかりました。誰かがプログラム的な回避策を見つけましたか?

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 

答えて

2

私の質問をチェックしてください。 android bluetooth can't connect

あなたのコードではなく、Android自体に問題があるようです。

+1

アンドロイド4.3にはまだ修正されていません。 –

関連する問題