Tôi đang chạy mẫu Trò chuyện Bluetooth từ gói mẫu Android SDK 4.2 mà không sửa đổi mã. Mục tiêu của tôi là Nexus 7 chạy Android 4.2.2. Tôi nhận được các lỗi này ngay khi tôi thử kết nối an toàn với thiết bị được ghép nối. Kết nối không an toàn cũng không thành công, dẫn đến lỗi tương tự. Thỉnh thoảng, sau khi tôi khởi động lại BT, kết nối sẽ thành công.Bluetooth Secureaccept() Không thành công, Nexus 7, Android 4.2.2
Tôi đã nghiên cứu điều này và thấy rất nhiều tài liệu tham khảo cho các sản phẩm BT trên Android 4, nhưng tôi nghĩ rằng chúng được cho là đã được sửa trong phiên bản 4.2 tiếp theo. Nexus 7 là thiết bị duy nhất của tôi nên tôi tự hỏi liệu điều này có xảy ra trên các thiết bị khác hay không.
Có cách giải quyết nào cho sự cố này không? Cảm ơn trước cho bất kỳ hướng dẫn!
CẬP NHẬT: Sau khi điều tra thêm, tôi tìm thấy this link, cho biết có sự rò rỉ trong ngăn xếp tài nguyên BT, vẫn còn trong 4.2.2, có thể được giải quyết bằng cách dừng/khởi động lại thủ công BT. Có ai tìm thấy cách giải quyết có lập trình không?
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
android 4.3 vẫn chưa được khắc phục. –