2013-04-16 78 views
5

我正在運行Android SDK 4.2示例包的藍牙聊天示例,但未對代碼進行任何修改。我的目標是運行Android 4.2.2的Nexus 7。只要我嘗試將Secure Connect連接到配對的設備,就會收到這些錯誤。連接不安全也失敗,導致類似的錯誤。偶爾,我重新啓動BT後,連接將會成功。藍牙Secureaccept()失敗,Nexus 7,Android 4.2.2

我已經研究過這個,看過很多關於Android 4上的BT probs的參考,但我認爲它們應該在後續的4.2版本中得到修復。 Nexus 7是我唯一的設備,所以我想知道這是否發生在其他設備上。

是否有解決此問題的方法?預先感謝任何指導!

更新:經過進一步調查,我發現this link,這表明BT資源堆棧中存在泄漏,仍然存在於4.2.2中,可以通過手動停止/重新啓動BT來解決。有沒有人找到一個程序化的解決方法?

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

android 4.3仍然沒有固定。 –