繁体   English   中英

如何使用Android BLE API 21知道BLE信标超出范围

[英]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不会保持设备消失的状态知识。


一些提示:

  1. 使列表基于在多个onBatchScanResults回调中看到的设备,因为各个回调可能没有完整的列表。
  2. 使用AlarmManager作为计时器,因为即使在应用程序处于后台时CPU进入睡眠状态,它也会唤醒您的应用程序。
  3. 使用以Mac地址为键的Map作为设备列表,并存储一个复合对象,其中包含BluetoothDevice和上次检测到该对象的时间戳。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM