我目前正在处理一个应用程序,我想让我的应用程序在接近它时立即检测到背景模式中的信标(立即)。基于我读过的文章,无法使用didEnterRegion完成,我应该在后台模式(位置更新)中运行测距。有没有直接降低didEnterRegion阈值的解决方案?或者我应该使用其他方法吗?如果是这样的话,它的作用就像didEnterRegion但RSSI的范围有限吗?当我的手机进入该区域并且它被锁定且屏幕关闭时它是否有效?
答案 0 :(得分:3)
监控API使您无法控制检测回调的距离。当信标第一次进入无线电范围内时,你总能得到一个回调,通常在40米左右。
有两种方法只能在近距离触发信标:
如果制造商支持,请在信标上配置较低的无线电传输功率。
将范围API与监控相结合,并在后台尽可能长的范围(iOS上最大180秒,无特殊背景权限),然后在测距回调表明CLBeacon准确性字段为立即时触发逻辑。
选项1更简单,但不太可靠,因为它通常会触发比您更远的距离触发,有时即使在非常近的范围内也会触发故障。
选项2更可靠,只要背景测距时间不会耗尽。如果手机的无线电在40米处触发以开始测距,如果用户需要超过180秒才能立即接近,则测距时间用完并且您无法获得触发,直到信标消失并重新出现以重置允许的测距时间。