Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何避免iOS上的iBeacon误报?_Ios_Swift_Ibeacon - Fatal编程技术网

如何避免iOS上的iBeacon误报?

如何避免iOS上的iBeacon误报?,ios,swift,ibeacon,Ios,Swift,Ibeacon,我有一个类,它实现了CLLocationManagerDelegate并监视一个信标区域。它接收didecenterregion和didextregion事件等 有时我会在进入区域和离开区域的状态之间快速切换,即使我坐在1米以内的信标旁边。当在1m范围内测量时,信标广告频率设置为500ms,发送功率设置为-79,RSSI约为-55 进入/退出切换在时间轴上看起来像这样 ... 12:01 - didEnterRegion 12:02 - didExitRegion 12:05 - didEnte

我有一个类,它实现了
CLLocationManagerDelegate
并监视一个信标区域。它接收
didecenterregion
didextregion
事件等

有时我会在进入区域和离开区域的状态之间快速切换,即使我坐在1米以内的信标旁边。当在1m范围内测量时,信标广告频率设置为500ms,发送功率设置为-79,RSSI约为-55

进入/退出切换在时间轴上看起来像这样

...
12:01 - didEnterRegion
12:02 - didExitRegion
12:05 - didEnterRegion
...
AFAIK iOS应该在确认退出之前等待30秒,以避免出现错误,但这不会发生

你有解决这个问题的窍门吗?或者如果有图书馆为我做这件事

潜在解决方案?

注意:我最初的解决方案是编写一个类,将区域进入/退出事件缓冲10秒,然后检测这些误报并将其从事件流中删除。它将在没有fluxuations的情况下重新发布该事件。例如,对于前面的示例,将发布一个事件

12:05-迪登特地区


如果您喜欢这种方法,有没有用Swift进行简单实现的想法?

您会说功率为-79 dBm。你是说这是你目前的RSSI水平吗?通过使用定位应用程序测量1m以外的rssi来测试这一点。上面说什么?我怀疑你真的是30多岁了,而且没有被发现。你需要在做任何事情之前解决这个问题。非常感谢你的意见。在1m范围内,RSSI约为-55。79是TX功率设置,是否以dBm为单位?非常感谢您的输入。定位信标中的校准显示1m范围内-62处的1米Tx功率值。79是我在信标上编程的TX功率设置,是以dBm为单位吗?我想我可以将其更新为-62,以优化1m范围。如何使用定位信标应用程序显示检测结果?这听起来是一个好主意,看看应用程序多久会收到一次广告。一米处的RSSI为-62,非常强大。校正txPower的校准将有助于改进距离估计,但不会影响区域入口/出口,因此我认为这是一种转移注意力的方法。您不能使用Locate来计算数据包检测,因为苹果没有API来实现这一点。如果你有安卓设备,你可以用安卓设备来实现。你说功率是-79 dBm。你是说这是你目前的RSSI水平吗?通过使用定位应用程序测量1m以外的rssi来测试这一点。上面说什么?我怀疑你真的是30多岁了,而且没有被发现。你需要在做任何事情之前解决这个问题。非常感谢你的意见。在1m范围内,RSSI约为-55。79是TX功率设置,是否以dBm为单位?非常感谢您的输入。定位信标中的校准显示1m范围内-62处的1米Tx功率值。79是我在信标上编程的TX功率设置,是以dBm为单位吗?我想我可以将其更新为-62,以优化1m范围。如何使用定位信标应用程序显示检测结果?这听起来是一个好主意,看看应用程序多久会收到一次广告。一米处的RSSI为-62,非常强大。校正txPower的校准将有助于改进距离估计,但不会影响区域入口/出口,因此我认为这是一种转移注意力的方法。您不能使用Locate来计算数据包检测,因为苹果没有API来实现这一点。如果你有安卓设备,你可以用安卓设备来实现。