清理失败的UUID通道查找

时间:2011-10-07 13:06:03

标签: android bluetooth

通过UUID方法打开蓝牙rfcomm套接字时(另一种方法(使用反射)在这里http://code.google.com/p/android/issues/detail?id=5427) - 我有时会得到以下错误(成功连接后)并且套接字未打开:

E/BluetoothService(21847): Received ACTION_UPDATE_SERVICE_CACHE00:0B:CE:01:2E:00
D/BluetoothService(21847): updateDeviceServiceChannelCache(00:0B:CE:01:2E:00)
D/BluetoothService(21847): Cleaning up failed UUID channel lookup: 00:0B:CE:01:2E:00 00001101-0000-1000-8000-00805f9b34fb

在这个问题上谷歌没有运气 - 这里有没有人知道最新情况以及如何预防?

更新

遇到同样问题的人 - 可能的解决方案:

  1. 建议用户在遇到该状态时重启设备( 非常糟糕的用户体验)
  2. 使用反射方法(脏但大部分时间都有效)
  3. 我仍然愿意接受新的想法; - )
  4. 我现在坚持#2 - 但等待更好的解决方案。

1 个答案:

答案 0 :(得分:0)

似乎信息是后果,而不是原因。如果在设备上找不到串行端口仿真服务,则连接显然会失败。

<强>更新

在审核code后,一切似乎都没问题。所以我的问题是:使用不同的设备在同一设备上发生随机错误吗?如果使用不同的设备,则设备可能尚未注册SerialPort服务。设备先前配对了吗?如果错误随同相同的设备发生错误?您是否同时使用连接类?您没有保护方法不受并发访问的影响。你没有保护成功连接。如果在第二次连接后尝试读取/关闭流,则它将失败(套接字对象已更改)。

好像没问题。同一设备会发生随机错误?如果是这种情况,您是否正在使用该类的并发使用?在第一种情况下