【发布时间】:2011-01-18 05:57:55
【问题描述】:
在 iPhone 上使用位置感知会触发“X 想使用您当前的位置”-“不允许”/“确定”。在CLLocationManager 文档中声明:
“用户可以选择拒绝应用程序访问位置服务数据。在应用程序初始使用期间,核心位置框架会提示用户确认使用位置服务是可以接受的。如果用户拒绝请求时,CLLocationManager 对象在以后的请求中向其委托报告适当的错误。”
如果您点击“确定”以允许定位服务,我发现“初始使用”是两次。从第三次开始,iPhone 将记住您的设置以供将来使用该应用程序。
但是,每当应用程序的一部分尝试使用定位服务时,用户按下“不允许”就会一直受到困扰。我在自己的应用程序中至少尝试了 15 次,并且在“2010 年温哥华 - 官方移动观众指南”中更多地点击了“不允许”。这对于不想使用此功能的用户来说非常烦人。
我的问题:
- 对于所有应用程序,如果您点击“确定”,iPhone 会询问两次并记住设置。这是一个正确的观察吗?
- 如果您点击“不允许”,iPhone 会继续询问您的尝试次数是否有限制,或者这是否永远不会被记住?你怎么处理这个?由于 locationManager:didFailWithError: 被通知,我猜它每次都可以增加一个计数器属性并保持它。下次使用该应用程序时,将在我自己的代码中检查此设置。如果计数器 >= 2,则不要使用核心位置。
- 我发现删除“确定”设置后的唯一方法是在常规 -> 重置 -> 位置警告中为所有应用程序重置它。有没有办法仅针对一个应用程序或通过我自己的代码执行此操作?
【问题讨论】:
-
我实际上认为这是一种很好的行为。如果用户继续使用您的应用但不使用定位服务,那么在其中拥有定位服务有多重要?
-
我已经创建了地图应用程序,我打算在应用程序市场推出。我的问题是......我们是否必须通过编码设置上述 OK/Dont Allow 警报?如果是,则将示例链接重定向给我。提前致谢。
标签: iphone core-location