因此,为了获得不断更新的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字段?
答案 0 :(得分:4)
在设备发现扫描期间,您可以仅获取RSSI值。我的硕士研究论文是关于这个主题的。这是因为活动连接期间的RSSI值不可靠(由于RSSI值本身的性质),因此谷歌Android工程师没有通过API公开它。
优点:
缺点
然而,不断执行设备发现的问题是它在移动设备上消耗了大量电池......