不一致的 iBeacon 检测

Inconsistant iBeacon detections

我正在尝试从 iOS 7.1 + 设备上的 App Killed 状态检测 iBeacon。在某些设备(不是特定的 phone 型号)上,该应用程序可以正常运行。

但是在某些设备上,该应用程序无法检测到信标。我仔细检查了这些设备上的设置,例如定位服务、权限、后台应用程序获取、蓝牙等。

我也启用了 "notifyEntryStateOnDisplay"。因此,我通过锁定设备并将其重新打开来进行测试。然而,某些设备确实检测到信标。(电池也已充满)。

我认为 "notifyEntryStateOnDisplay" 会在我每次打开设备时检测到 iBeacon。我在这里缺少什么?

notifyEntryStateOnDisplay 选项旨在在用户点击肩部按钮打开显示屏时向 didDetermineState:forRegion: 提供额外的回调。 phone 首次启动时可能不会发生该回调。事实上,我的测试表明 CoreLocation 在显示器首次出现后的前 60 秒左右甚至都没有激活。

需要检查的几件事:

  1. 确保您的逻辑在 didDetermineState:forRegion: 而不是 didEnterRegion:didExitRegion:

  2. 启动时,等待 60 秒,然后按下肩部按钮并期待结果。