我在BLE项目中使用altbeacon库。我想为信标启用后台扫描。由于我不希望用户一直打开蓝牙,我正在使用用户的GPS位置来确定是否需要打开蓝牙以在后台扫描信标。我正在使用Bootstrap通知程序触发didEnterRegion
,然后使用RangeNotifier
来确定设备的Major,Minor和distance值。如果用户居住在2-5米的距离30秒,我想触发一个事件。我怎么能从后台做到这一点?目前使用默认设置10s扫描和5分钟的贪睡有助于我监控我的UUID定义的区域,但是当测量主要,次要和距离时,扫描仅持续1秒,这也无法帮助我看到周围的所有信标因为我使用~2hz频率。下次扫描仅在5分钟后进行。我怀疑将5分钟时间减少到10秒,因为我不希望用户感觉应用程序正在消耗电池,如果他长时间打开蓝牙。
所以最后我的问题是:
didExitRegion
被呼叫时,我可以获得信标的UUID,主要,次要和停留时间吗?答案 0 :(得分:0)
我会添加自定义逻辑来控制后台模式。进入地理围栏后,保持前景模式30秒左右,然后进入后台模式。
如果您的受监控区域已定义主要和次要,您可以从区域出口的ID 2和id3中读取这些字段。没有自动跟踪停留时间,但您可以在区域输入中设置应用中的时间戳,并从区域退出时应用记录的其他时间戳中减去该时间戳。