我的iOS应用程序仍然与iBeacon监控屏幕关闭模式搏斗。如何在屏幕关闭时检测iOS应用程序中的iBeacon?
在我的实验中,当屏幕关闭时,委托方法“locationManager:didRangeBeacons:inRegion:”仍然被持续触发,但是一旦屏幕关闭,信号就会相应消失(RSSI = 0, beacon.accuracy = -1.0),然后在10秒钟后,根本找不到信标。
我发现this后一些重要的信息说,“iOS版会使用两种不同的方式标:。区域监测和灯塔为后者没有在后台工作...,或当应用程序被终止
CLLocationManager
将只火了进入的区域,当一个委托调用。如果你开始,而该区域的内部监控的区域,该条目代表将不会被调用。您的应用程序将不得不手动调用CLLocationManager的requestStateForRegion方法。一旦您退出监控区域,CLLocationManager将在约30-45秒后调用didExitRegion。“
现在我试图在屏幕关闭时连续调用“requestStateForRegion:”方法。其结果是:
- 如果我的iPhone已经在iBeacon显示区域,委托方法 “didDetermineState”给出“CLRegionStateInside”不断;
- 当我认为我的iPhone,然后步行iBeacon显示区域外,或者只是 关闭iBeacon显示的广告,30-45秒钟后, 委托方法“didDetermineState”变为“CLRegionStateOutside” 和“外部”的状态持续;
- 当我认为我的iPhone和走iBeacon显示区域内,或重新打开 的iBeacon显示的广告,委托方法 “didDetermineState”仍然给“外部”连续NEVER BACK变为“内部”。
我需要的是,当屏幕关闭时,只要我的iOS设备进入iBeacon区域,我就可以检测到。寻求帮助...提前致谢。
是的,我确实添加了info.plist中的密钥。 – kuang
我也试过并阅读了教程。它还没有解决我的问题。 – kuang
我试了一下教程,发现它有同样的问题:只有退出事件可以被捕获,但输入事件永远保持沉默。 – kuang