在 iPhone 上使用位置感知会触发“X 想使用您当前的位置”-“不允许”/“确定”。在里面CL位置管理器 http://developer.apple.com/iphone/library/documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html#//apple_ref/doc/uid/TP40007125-CH3-DontLinkElementID_1文档中指出:
“用户可以选择拒绝应用程序访问位置服务数据。在应用程序初始使用期间,核心位置框架会提示用户确认使用位置服务是可接受的。如果用户拒绝该请求,则CLLocationManager 对象在将来的请求期间向其委托报告适当的错误。”
我发现如果您点击“确定”以允许定位服务,“初始使用”会是两次。从第三次开始,iPhone 将记住您的设置,以便以后使用该应用程序。
然而,每次应用程序的一部分尝试使用位置服务时,按“不允许”的用户都会不断受到困扰。我已经在自己的应用程序中尝试了至少 15 次,并且在“2010 年温哥华 - 官方移动观众指南”中点击了更多“不允许”。对于不想使用此功能的用户来说,这非常烦人。
我的问题:
- 对于所有应用程序,iPhone 都会询问两次,如果您点击“确定”,则会记住设置。这是正确的观察吗?
- 如果您点击“不允许”,iPhone 会继续询问的尝试次数是否有限制,还是永远不会被记住?你如何处理这个问题?由于 locationManager:didFailWithError: 被通知,我想它可以每次增加一个计数器属性并保留它。下次使用应用程序时,会在我自己的代码中检查此设置。如果 counter >= 2,则不使用核心位置。
- 我发现删除记住的“确定”设置的唯一方法是在“常规”->“重置”->“位置警告”中为所有应用程序重置它。有没有办法只对一个应用程序或我自己的代码执行此操作?
是的,它总是会问你两次。恕我直言,有点奇怪和不直观。据我了解,这是为了防止您第一次按错按钮。之后它假设您知道自己想要什么。
-
我在 LocateMe 示例中发现以下内容:
连续两次启动应用程序时“不允许”与“绝不允许”相同。
但我还了解到其他人也看到了与您相同的行为。也许最近的操作系统更新发生了变化?无论如何,你的方法听起来很合理。
抱歉,我不认为您只能重置一个应用程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)