从本机设置应用启用位置服务

时间:2014-11-08 23:27:22

标签: ios objective-c location settings

当我的应用程序启动时,它会请求使用位置服务。

如果用户选择“不允许”,我会再次提示让他们知道位置服务是最佳体验所必需的,他们可以在设置应用中启用。

如果用户不允许并仍然创建帐户,则在没有位置功能部件的情况下,主屏幕将无法完全正常运行。

从这一点来说,如果我在“设置”应用中手动启用,我仍然无法获取主页面来获取当前位置。

如何从“设置应用”中检测到已启用位置服务?

我需要从AppDelegate再次执行一个方法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用CLLocationManager.AuthorizationStatus判断您的应用是否已启用位置,该位置返回CLAuthorizationStatus枚举的成员。如果完全禁用了位置,则您的应用将无法获得授权,因此您需要了解所有需要了解的内容。

let authorization = CLLocationManager.authorizationStatus()
if authorization == .AuthorizedWhenInUse || authorization == .Authorized {
    ...
}

如果您使用CLLocationManager请求授权而用户拒绝授权,则无法再次启动该窗口。

从用户体验的角度来看,也要小心唠叨。清楚地沟通您的应用程序从使用位置中受益,但尽量避免让用户对其进行恫吓。

答案 1 :(得分:0)

另请参阅how to determine when settings change on ios,让您的应用在用户(希望)启用后立即重试位置访问权限。