2014-11-08 123 views
0

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

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

如果用户不允许并且仍然创建一个帐户,那么在没有位置功能部件的情况下,主屏幕将无法正常工作。

从这一点,如果我手动启用设置应用程序,我仍然没有得到主页来获取当前位置。

如何检测位置服务是否已从设置应用程序启用?

是否有我需要从AppDelegate再次强制执行的方法?

回答

0

您可以使用CLLocationManager.AuthorizationStatus判断您的应用程序是否已启用位置,该位置将返回CLAuthorizationStatus枚举的成员。如果位置完全禁用,您的应用将无法获得授权,因此您知道您需要知道的一切。

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

如果您在使用CLLocationManager请求授权和用户拒绝它,你可以不会导致再次出现的窗口。

从用户体验的角度来看,还要小心唠叨。清楚地表明您的应用可以从使用位置获益,但可以尽量避免对用户造成威胁。

相关问题