2013-04-16 30 views
5

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 

Trả lời

2

Kiểm tra câu hỏi của tôi. android bluetooth can't connect

Dường như đây là vấn đề với chính Android và không phải là mã của bạn.

+1

android 4.3 vẫn chưa được khắc phục. –