我正在使用标准 API 程序连接到设备。特别是 OBDII 蓝牙适配器。
我有两个不同型号的 OBDII 蓝牙适配器。运行完全相同的代码,第一个将与我测试过的每部手机/平板电脑毫无问题地配对和连接。第二个将配对和连接正常,除了我的 Nexus 7 运行 android 4.2
它抛出一个 IO 异常:read failed, socket might closed or timeout, read ret: -1
认为这只是设备本身或较新版本的问题......但是另一个软件“扭矩”能够从我的 Nexus 7 连接到任一适配器。
所以我显然做错了/不同,这只是后来操作系统中的一个问题???
任何帮助解决这个问题将不胜感激。
public void run() {
Log.i(TAG, "BEGIN mConnectThread");
setName("ConnectThread");
// Always cancel discovery because it will slow down a connection
mAdapter.cancelDiscovery();
// 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(); <=**This is where the exception is thrown
} catch (IOException e) {
Etype = "Connection to: " + mmDevice.getName() + " at: "
+ mmDevice.getAddress() + " failed: " + e.getMessage();
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
BluetoothChatService.this.start();
return;
}