我对 Android 中建立 BT 连接的两种方法感到困惑。
从我记事起,这就是我所做的事情,它从 2.3+ 设备到早期的 4.x 都有效。这是什么Android 文档描述 http://developer.android.com/reference/android/bluetooth/BluetoothSocket.html以及。
private static final UUID sppUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
bluetoothSocket = bluetoothDevice.createRfcommSocketToServiceRecord(sppUUID);
bluetoothSocket.connect();
这在一些较新的 Android 设备(运行 4.4 的 Nexus 7)上不再起作用,Cyanogenmod 的结果如下(或类似):
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
经过一番折腾之后——其中大部分都是如此!——我发现这很有效
Method m = bluetoothDevice.getClass().getMethod("createRfcommSocket", new Class[] { int.class });
bluetoothSocket = (BluetoothSocket) m.invoke(bluetoothDevice, 1);
bluetoothSocket.connect();
这是从哪里来的?为什么这个方法比其他方法更有效?
谢谢
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)