如何检测BLE设备已经没有在Android中连接到它

时间:2014-11-05 13:30:15

标签: android bluetooth rssi

我正在为我们团队的一个Android BLE库工作,该库是用4.3本机框架开发的,我试着保留一个找到的BLE设备的表,并在我找到一个新的BLE设备时发送通知在我找到的设备表中,而不是每次发现设备时通知(android BLE框架的默认行为),问题是我无法检测到设备已经消失,考虑到我不想建立与它进行BLE连接。 有人可以帮帮我吗?我想有一些方法可以做到这一点,比如iOS框架,你可以在没有连接它的情况下通知设备。

1 个答案:

答案 0 :(得分:2)

“未发现”设备的基本策略是跟踪设备上次发现的时间,并且每隔一秒左右迭代一次设备列表。如果当前时间减去上次发现设备的时间大于某个时间增量(我使用12.5秒),那么您认为设备未被发现并将其从列表中删除。

有些人对此有所了解:

  • 取消发现设备所需的最短时间是12.5秒,如果你坐下来计算它,这个时间很长。您可以尝试使用较低时间的增量阈值,但我发现,对于某些手机而言,这会导致大量错误的未发现,因为发现之间的合法时间可能需要一段时间。
  • 你不应该连续扫描,而是最多以5-10秒的脉冲进行扫描,中间间隔很小。

我也听说有人使用RSSI。低RSSI意味着你不会发现它,但我也经历了很多误报。