蓝牙发现与连接

时间:2011-07-26 13:39:55

标签: android bluetooth

因此,为了获得不断更新的RSSI值,我不得不采用这种效率低下的方法。我已经尝试过使用bluecove 2.1.1,但它给了我一些库错误和运行时错误,我不想浪费时间处理它。开发人员指南将发现定义为扫描附近可发现设备的过程。

调用方法Intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE);在这段时间可能吗?

或者两个设备是否必须首先建立连接才能使上述方法具有任何意义?

也就是说,对于我的poll()方法,我可以先将有问题的设备的MAC地址保存到某个变量mac_addr,将RSSI值保存到某个变量my_rssi,然后每次调用poll()时,都是新的扫描运行,mac地址与mac_addr匹配的设备是否已定位并更新my_rssi字段?

1 个答案:

答案 0 :(得分:4)

在设备发现扫描期间,您可以获取RSSI值。我的硕士研究论文是关于这个主题的。这是因为活动连接期间的RSSI值不可靠(由于RSSI值本身的性质),因此谷歌Android工程师没有通过API公开它。

优点:

  • 您不需要有效连接,因此不需要配对
  • 由于没有涉及“微微网”,您扫描的设备数量可能是无限的

缺点

  • 其他蓝牙设备需要被发现(这是一个问题,特别是如果你想找到其他具有最大可发现间隔的Android设备)。
  • 连续设备发现扫描是一个繁重的过程 - > costs a lot of battery

然而,不断执行设备发现的问题是它在移动设备上消耗了大量电池......