San*_*gre 1 iphone viewdidload mkmapview cllocationmanager ios
我正在使用[CLLocationManager locationServicesEnabled]函数来获取是否启用位置服务的状态.我保留了viewDidLoad方法代码.
if(![CLLocationManager locationServicesEnabled])
{
NSLog(@"No");
}
else
{
NSLog(@"Yes");
}
Run Code Online (Sandbox Code Playgroud)
当我第一次运行这个应用程序时它会返回Yes.为什么?它应该归还我No.当我没有选择"允许"或"不允许"选项时就是这种情况.意味着我既不允许也不允许,但viewDidLoad我得到了Yes.
现在我选择"不允许"并再次加载它viewController.在这个时候,至少它应该归还我No,但我仍然得到了Yes.为什么?
这么多困惑CLLocationManager.
有任何想法吗?
locationServicesEnabled返回是否在设置上启用了位置服务..如果在设置中启用,则此函数会一直返回YES..
来自文档
locationServicesEnabled
返回一个布尔值,指示是否在设备上启用了位置服务.
讨论
用户可以通过切换"常规"中的"位置服务"开关,从"设置"应用程序启用或禁用位置服务.
您应该在开始位置更新之前检查此方法的返回值,以确定用户是否为当前设备启用了位置服务.如果此方法返回NO并且您仍然启动位置更新,则Core Location框架会提示用户确认是否应重新启用位置服务.
用户是否允许/拒绝应用程序权限(在alertview中)不会影响此方法的返回值.
如果您想知道用户是否已授予访问位置的应用程序权限,您可以使用authorizationStatus.
| 归档时间: |
|
| 查看次数: |
609 次 |
| 最近记录: |