我当前正在使用我想要的应用程序,该应用程序在接近它(即时(时,它可以在后台模式下检测信标。根据我阅读的文章,它无法使用Didenterregion完成,并且在后台模式下运行时,我应该使用范围(位置更新(。是否有任何解决方案可以直接降低DIDENTERNICION阈值?还是我应该使用其他方法?如果是这样,它像didenterringion一样起作用,但是RSSI范围有限?当我的手机进入该区域并且已锁定并且屏幕关闭时,它是否有效?
监视API无法控制您获得检测回调的距离。您总是在Beacon第一次进入无线电范围内(通常在40米左右(时会收到回调。
只有两种方法可以在近距离的信标上触发:
-
如果制造商支持它,则在信标上配置较低的无线电传输电源。
-
将范围API与监视结合在一起,并在背景中尽可能长的范围(在没有特殊背景权限的iOS上最大180秒的最大值(,然后在备票回调时触发您的逻辑。
选项1更简单,但可靠性较差,因为它通常会在比您想要的更大的距离上触发,有时甚至在极度接近范围内都没有触发。
选项2更可靠,只要背景时间不足。如果手机的无线电触发40米以开始范围,则用户需要超过180秒的时间才能立即靠近,然后将时间耗尽,您将无法触发,直到信标消失并重新出现以重置允许的范围的时间。