0

我从事项目,涉及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

重新启动没有帮助。但奇怪的是,这个问题有时会重现。

感谢您的任何评论。

4

1 回答 1

0

有一个解决方法。Socket.connect() 应该从另一个线程调用。

如果它会阻塞执行线程,我们可以使用 Socket.close(); 停止它。

于 2012-08-22T13:00:37.387 回答