【发布时间】:2015-05-22 12:20:52
【问题描述】:
我正在与蓝牙设备建立蓝牙套接字连接,并想从设备中读取字节。
我已正确建立连接:
try {
Method m = mmDevice.getClass().getMethod("createRfcommSocket", new Class[] { int.class });
temp = (BluetoothSocket) m.invoke(mmDevice, 1);
} catch (Exception e) {
}
我正在从蓝牙设备正确读取字节。
我遇到了异常:
java.io.IOException: 读取失败,socket 可能关闭或超时,读取 回复:-1
因此,连接中断,我的设备和蓝牙设备之间的通信也结束了。
这个问题尤其出现在 Android 5.0.1 Lollipop 上
谁能有解决方法?
【问题讨论】:
-
你为什么要为此使用 Java 反射?
-
我只使用反射来连接蓝牙设备。
-
我知道,我看到了你的代码,我在问为什么?为什么不使用 Android SDK 提供的 API?
-
非常有趣。但它适用于反射?
-
是的,它有效,我们可以进一步使用
temp对象来调用connect()方法,即temp.connect();
标签: android bluetooth android-5.0-lollipop bluetooth-socket