假设在启动时,默认设置页面中的位置服务已关闭。我在应用程序中有一个按钮可以打开位置服务,如果我第一次单击它会显示默认警报以更改设置以打开
locationmanager = [[CLLocationManager alloc]init];
[locationmanager setDelegate:self];
[locationmanager setDesiredAccuracy:kCLLocationAccuracyBest];
[locationmanager startUpdatingLocation];
它工作正常两次。但如果第三次定位服务处于关闭状态并点击按钮则不会显示任何警报。我无法知道CLLocation行为。可能这不是一个很好的问题,但我仍然希望清除这个概念。如果有人有任何想法,请帮助我。
谢谢。
答案 0 :(得分:0)
以下是Apple documentation所说的内容:
除了硬件不可用外,用户还可以选择拒绝应用程序访问位置服务数据。在应用程序初次使用期间,Core Location框架会提示用户确认使用位置服务是可以接受的。如果用户拒绝请求,则
CLLocationManager
对象会在将来的请求期间向其委托报告相应的错误。您还可以使用authorizationStatus
方法检查应用程序的显式授权状态。
因此,根据authorizationStatus
,警告可能会也可能不会显示。