我对在Android中建立BT连接的两种方法感到困惑。
这是我所做的,只要我记得,它已经从2.3+设备到早期的4.x.这也是Android docs describe。
private static final UUID sppUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
bluetoothSocket = bluetoothDevice.createRfcommSocketToServiceRecord(sppUUID);
bluetoothSocket.connect();
这已停止在一些较新的Androids(运行4.4的Nexus 7),Cyanogenmod上使用此结果(或类似):
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
经过多次颠簸 - 大部分都在SO! - 我觉得这很有效
Method m = bluetoothDevice.getClass().getMethod("createRfcommSocket", new Class[] { int.class });
bluetoothSocket = (BluetoothSocket) m.invoke(bluetoothDevice, 1);
bluetoothSocket.connect();
这是从哪里来的?为什么这比其他方法更有效?
谢谢