我在项目上工作,涉及BT连接。我已经用Nexus S,Nexus Galaxy这样的手机进行了测试,一切都运行良好。 问题在于HTC的愿望。首先,我必须通过端口连接到PC,所以我使用反射
Method m = device.getClass().getMethod("createRfcommSocket",
new Class[] { int.class });
BluetoothSocket socket = (BluetoothSocket) m.invoke(device, port);
socket.connect();
socket.connect()永远冻结线程,就像socket.close(); 同样来自Android日志,我可以看到奇怪的消息:
USERIAL_Ioctl:BT_Sleep,USERIAL_IO_BT_WAKE_DEASSERT
重新启动没有帮助。但奇怪的是,这个问题不时可以重现。
感谢您提出任何意见。
答案 0 :(得分:0)
有一种解决方法。 应该从另一个线程调用Socket.connect()。
如果它会阻止执行线程,我们可以使用它来阻止它 Socket.close();