我的应用可以有两级LocationHandler状态。首先,我启动requestWhenInUseAuthorization
然后,如果用户激活某些特定功能,我会启动requestAlwaysAuthorization
。
如果用户拒绝requestAlwaysAuthorization以告知他该功能无法按预期工作,我需要收到通知。问题是,在这种情况下,didChangeAuthorizationStatus
未被调用,因为授权状态保持不变(它是AuthorizedWhenInUse
并且它仍然是AuthorizedWhenInUse
)。
如果用户在接受AuthorizedWhenInUse后拒绝授权,您是否知道如何通知我?
答案 0 :(得分:3)
自iOS 10以后,即使用户在使用中接受,也不再可能在调用requestWhenInUseAuthorization()之后调用requestAlwaysAuthorization()。
在之前的版本(至少是iOS8)中你可以“升级”#34;授权并在用户接受使用后请求始终授权。这已经不可能了。
最好的办法是检查CLLocationManager.authorizationStatus() 偶尔显示一个对话框,使用UIApplicationOpenSettingsURLString
将用户指向正确的设置页面