iBeacon:didEnterRegion永远不会被调用

时间:2015-08-09 18:37:13

标签: ios ibeacon

我正在尝试使用iBeacon扫描和显示的示例应用程序。

这是使用iOS 8,目标设备是iPhone 5s。在iPhone 5s中运行应用程序之前,需要注意以下先决条件。

1)在info.plist中添加了NSLocationAlwaysUsageDescription 2)iOS被选为8 3)在Xcode中设置"功能"选项卡,"背景模式",其中"位置更新"和"使用蓝牙LE配件"被选中。 4)iPhone中的后台应用程序刷新已启用。

不幸的是,didEnterRegion和didRangeBeacons根本没有被调用。然而,didStartMonitoringForRegion被调用。

请注意以下事项。

1)所有信标都正常工作,并使用下载的第三方应用程序在同一iPhone中验证。 2)在调试窗口中,我总能看到位置服务授权状态是"未确定"总是。 3)如果我在iPhone中关闭位置服务,那么我获得授权状态为#34;拒绝"。 4)[self.locationManager requestAlwaysAuthorization];电话没有效果。

这是什么我没有正确地做到这一点?如果你可以帮我解决这个问题,真的很棒。

2 个答案:

答案 0 :(得分:0)

当发生这种情况时,它确实令人沮丧,因为目前尚不清楚根本原因是什么。关键是你需要获得授权状态才能被接受。

我会尝试三件事:

  1. 确保{.1}}的.plist文件中有一个字符串。如果不存在,则不会提示用户授予位置服务权限。

    NSLocationAlwaysUsageDescription
  2. 进入应用程序的设置并查找位置服务开关。尝试使用它来启用权限。

  3. 如果上述方法无法解决问题,请尝试卸载并重新安装该应用。我发现应用程序在开发过程中处于不良状态,这是让iOS重新提示授权的唯一方法。

答案 1 :(得分:0)

问题已解决。

我在编辑测试目录中的info.plist文件时犯了一个错误,而不是编辑“支持文件”目录中的info.plist文件。

一旦我在“支持文件”目录的info.plist中添加了NSLocationAlwaysUsageDescription,一切正常。