我正在尝试创建一个扫描蓝牙耳机的简单程序(我正在使用PS3耳机进行测试),然后连接到它.我正在使用bluetooth chat program example中的代码.但是我无法将它连接到任何东西.当它到达connect()时它给我一个I / O异常.
@H_404_6@private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
尝试与设备建立传出连接时,此线程会运行.它直接通过;连接成功或失败.
@H_404_6@private class ConnectThread extends Thread { private final BluetoothSocket mmSocket; private final BluetoothDevice mmDevice; public ConnectThread(BluetoothDevice device) { mmDevice = device; BluetoothSocket tmp = null; // Get a BluetoothSocket for a connection with the given BluetoothDevice try { tmp = device.createRfcommSocketToServiceRecord(MY_UUID); } catch (IOException e) { Log.e(TAG,"create() Failed",e); } if (tmp == null){ Log.i(TAG,"tmp is NULL"); } mmSocket = tmp; } public void run() { Log.i(TAG,"BEGIN mConnectThread"); setName("ConnectThread"); // Always cancel discovery because it will slow down a connection mAdapter.cancelDiscovery(); Log.i(TAG,"discovery is cancelled"); // Make a connection to the BluetoothSocket try { // This is a blocking call and will only return on a successful connection or an exception mmSocket.connect(); //Doesn't like something here??? } catch (IOException e) { Log.e(TAG,"IO error,",e); connectionFailed(); // Close the socket try { mmSocket.close(); } catch (IOException e2) { Log.e(TAG,"unable to close() socket during connection failure",e2); } // Start the service over to restart listening mode newTBluetoothService.this.start(); return; } // Reset the ConnectThread because we're done synchronized (newBluetoothService.this) { mConnectThread = null; } // Start the connected thread connected(mmSocket,mmDevice); } public void cancel() { try { mmSocket.close(); } catch (IOException e) { Log.e(TAG,"close() of connect socket Failed",e); } } }
这是logcat:
@H_404_6@10-13 16:07:45.544: ERROR/BluetoothService.cpp(1259): stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session) 10-13 16:07:45.544: DEBUG/newBluetoothService(2821): connect to: 00:22:A6:07:12:2B 10-13 16:07:45.544: DEBUG/newBluetoothService(2821): setState() 0 -> 2 10-13 16:07:45.552: INFO/newBluetoothService(2821): BEGIN mConnectThread 10-13 16:07:45.567: ERROR/BluetoothService.cpp(1259): stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session) 10-13 16:07:45.567: INFO/newBluetoothService(2821): discovery is cancelled 10-13 16:07:45.575: ERROR/BluetoothEventLoop.cpp(1259): onCreateDeviceResult: D-Bus error: org.bluez.Error.AlreadyExists (Device already exists) 10-13 16:07:45.583: INFO/BluetoothNew(2821): MESSAGE_STATE_CHANGE: 2 10-13 16:07:46.700: ERROR/BluetoothEventLoop.cpp(1259): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/2872/hci0/dev_00_22_A6_07_12_2B 10-13 16:07:47.036: DEBUG/BluetoothService(1259): updateDeviceServiceChannelCache(00:22:A6:07:12:2B) 10-13 16:07:47.059: DEBUG/BluetoothService(1259): uuid(system): 0000111e-0000-1000-8000-00805f9b34fb 1 10-13 16:07:47.067: DEBUG/BluetoothService(1259): uuid(system): 00001108-0000-1000-8000-00805f9b34fb 2 10-13 16:07:47.075: VERBOSE/BluetoothEventRedirector(1786): Received android.bleutooth.device.action.UUID 10-13 16:07:47.075: DEBUG/BluetoothService(1259): Cleaning up Failed UUID channel lookup: 00:22:A6:07:12:2B 00001101-0000-1000-8000-00805f9b34fb 10-13 16:07:47.083: ERROR/newBluetoothService(2821): IO error,10-13 16:07:47.083: ERROR/newBluetoothService(2821): java.io.IOException: Service discovery Failed 10-13 16:07:47.083: ERROR/newBluetoothService(2821): at android.bluetooth.BluetoothSocket$SdpHelper.doSdp(BluetoothSocket.java:377) 10-13 16:07:47.083: ERROR/newBluetoothService(2821): at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:201) 10-13 16:07:47.083: ERROR/newBluetoothService(2821): at com.nmtransfer.bluetooth.newBluetoothService$ConnectThread.run(newBluetoothService.java:347) 10-13 16:07:47.083: INFO/newBluetoothService(2821): Connection Failed 10-13 16:07:47.083: DEBUG/newBluetoothService(2821): setState() 2 -> 1 10-13 16:07:47.083: DEBUG/newBluetoothService(2821): start 10-13 16:07:47.083: INFO/BluetoothNew(2821): MESSAGE_STATE_CHANGE: 1 10-13 16:07:47.098: DEBUG/BluetoothService(1259): new handle 1000d 10-13 16:07:47.106: DEBUG/newBluetoothService(2821): setState() 1 -> 1 10-13 16:07:47.106: DEBUG/newBluetoothService(2821): BEGIN mAcceptThreadThread[Thread- 13,5,main] 10-13 16:07:47.114: INFO/BluetoothNew(2821): MESSAGE_STATE_CHANGE: 1 10-13 16:07:51.036: ERROR/BluetoothEventLoop.cpp(1259): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/2872/hci0/dev_00_22_A6_07_12_2B 10-13 16:07:53.583: VERBOSE/BluetoothEventRedirector(1786): Received android.bleutooth.device.action.UUID
任何帮助深表感谢.
谢谢
克里斯
最佳答案
@CHRIS嘿,我其实只是想出了问题.您使用connectThread敲击了头部,但是您需要使用UUID(“00001108-0000-1000-8000-00805F9B34FB”)作为耳机配置文件.我正在使用Jabra耳机,它对我有用.如果您有疑问,请告诉我!
谢谢!
谢谢!