如何知道BLE信标超出Android BLE api 21的范围
新的安卓BLE api(从API21开始)允许在信标上轻松获得回调,但当信标超出范围时,有可能获得某种信息吗 我想我可以手动记住最后看到的信标列表如何知道BLE信标超出Android BLE api 21的范围,android,bluetooth-lowenergy,android-5.0-lollipop,android-bluetooth,ibeacon-android,Android,Bluetooth Lowenergy,Android 5.0 Lollipop,Android Bluetooth,Ibeacon Android,新的安卓BLE api(从API21开始)允许在信标上轻松获得回调,但当信标超出范围时,有可能获得某种信息吗 我想我可以手动记住最后看到的信标列表 public void onBatchScanResults (List<ScanResult> results) public void onBatchScanResults(列出结果) 和下一批相比,最后一次看到它-但在这种情况下,我需要唤醒设备-比方说-每分钟检查是否有什么改变 免责声明:我不使用ibeacon,但使用其他一些B
public void onBatchScanResults (List<ScanResult> results)
public void onBatchScanResults(列出结果)
和下一批相比,最后一次看到它-但在这种情况下,我需要唤醒设备-比方说-每分钟检查是否有什么改变
免责声明:我不使用ibeacon,但使用其他一些BLE信标,但没有像
信标那样的标签您需要使用计时器,并按照您的描述维护一个列表,因为API对正在消失的设备没有状态知识
以下是一些提示:
使您的列表基于在多个onBatchScanResults
回调中看到的设备,因为单个回调可能没有完整的列表
使用AlarmManager
作为计时器,因为即使应用程序在后台时CPU进入睡眠状态,计时器也会唤醒应用程序
使用Mac地址为设备列表键入的映射
,并存储一个复合对象,该对象包含蓝牙设备
和上次检测到它的时间戳
是的,这似乎是现在唯一的方法…记住列表。。。否则,将需要包含一个带有来自信标的机制的服务器。否则,从根本上说,无法检测信标是否不在范围内:)或维护uuid特定信标的列表,并且无法从测试此方法功耗的sameDid中进行检查?请参阅此处:这些测试未使用AlarmManager,但是,仅使用低延迟安卓5.0扫描,并回调到onBatchScanResults
是的,但它不包括在特定时刻唤醒设备以检查某项内容是否已更改的情况;无论如何,Android BLE api似乎不是用来检测超出范围的事件,只是检测范围内的事件;这就是他们想要思考灯塔的方式——你可以找到,但不是松散的:)很清楚,Android没有任何灯塔API。它只有较低级别的蓝牙API。这就是我编写Android Beacon库的全部原因。它添加了您描述的确切功能,并可用于各种可配置信标类型。