我正在尝试使用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];电话没有效果。
这是什么我没有正确地做到这一点?如果你可以帮我解决这个问题,真的很棒。
答案 0 :(得分:0)
我会尝试三件事:
确保{.1}}的.plist文件中有一个字符串。如果不存在,则不会提示用户授予位置服务权限。
NSLocationAlwaysUsageDescription
进入应用程序的设置并查找位置服务开关。尝试使用它来启用权限。
如果上述方法无法解决问题,请尝试卸载并重新安装该应用。我发现应用程序在开发过程中处于不良状态,这是让iOS重新提示授权的唯一方法。
答案 1 :(得分:0)
问题已解决。
我在编辑测试目录中的info.plist文件时犯了一个错误,而不是编辑“支持文件”目录中的info.plist文件。
一旦我在“支持文件”目录的info.plist中添加了NSLocationAlwaysUsageDescription,一切正常。