iPhone上"X想要使用您当前的位置"背后的规则是什么?

Mad*_*bæk 13 iphone core-location

在iPhone上使用位置感知触发"X想要使用您当前的位置" - "不允许"/"确定".在CLLocationManager文档中,声明:

"用户可以选择拒绝应用程序访问位置服务数据.在应用程序初次使用期间,Core Location框架会提示用户确认使用位置服务是可接受的.如果用户拒绝请求, CLLocationManager对象在将来的请求期间向其委托报告适当的错误."

如果你点击"确定"以允许位置服务,我发现"初始用途"是两次.从第三次开始,iPhone将记住您对该应用程序未来所有用途的设置.

但是,每当应用程序的一部分尝试使用位置服务时,按下"不允许"的用户将不断受到打扰.我已经在我自己的应用程序中尝试了至少15次,并在"温哥华2010 - 官方移动观众指南"中更多地点击了"不允许".对于不想使用此功能的用户来说,这非常烦人.

我的问题:

  • 对于所有应用程序,如果您点击"确定",iPhone将询问两次并记住设置.这是正确的观察吗?
  • 如果您点击"不允许",iPhone会继续询问的尝试次数是否有限制,或者这是否永远不会被记住?你怎么处理这个?由于locationManager:didFailWithError:被通知,我想它每次都可以增加一个计数器属性并坚持这一点.下次使用该应用程序时,将在我自己的代码中检查此设置.如果counter> = 2,请不要使用核心位置.
  • 我记得删除"确定"设置的唯一方法是将其重置为常规 - >重置 - >位置警告中的所有应用程序.有没有办法只为一个应用程序或我自己的代码执行此操作?

cag*_*een 5

  1. 是的,它会一直问你两次.有点古怪和不直观的imho.我的理解是,如果您第一次按错了按钮.之后,它会假设您知道自己想要什么.

  2. 我在LocateMe示例中找到了以下内容:

    两个连续的应用程序启动时"不允许"与说"永不允许"相同.但我也读到其他人看到的行为与你相同.最近的操作系统更新可能有变化?无论如何,你的方法听起来很合理.

  3. 我不相信你只能重置一个应用程序,抱歉.