[英]How to know BLE beacon is out of range with Android BLE api 21 [duplicate]
这个问题已经在这里有了答案:
新的Android BLE api(从api 21开始)允许通过onBatchScanResults轻松找到信标上的回调,但是当信标超出范围时是否可以获得某种信息?
我想我可以手动完成-记住上次出现的信标列表
public void onBatchScanResults (List<ScanResult> results)
然后将下一批与上次看到的进行比较-但在这种情况下,我需要唤醒设备-可以说-每分钟检查某事物是否已更改。
免责声明:我不使用ibeacon,但使用其他一些BLE信标,但是没有像beacon
这样的标签
您需要使用计时器并按照您的描述维护列表,因为API不会保持设备消失的状态知识。
一些提示:
onBatchScanResults
回调中看到的设备,因为各个回调可能没有完整的列表。 AlarmManager
作为计时器,因为即使在应用程序处于后台时CPU进入睡眠状态,它也会唤醒您的应用程序。 Map
作为设备列表,并存储一个复合对象,其中包含BluetoothDevice
和上次检测到该对象的时间戳。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.