2012-08-15 60 views
0

我工作的项目,涉及BT连接。我已经用Nexus S,Nexus Galaxy等手机进行测试,并且一切正常。 这个问题与HTC的愿望。首先,我必须连接到通过端口的PC,所以我用反射HTC渴望的BluetoothSocket连接冻结

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

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

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