在iOS中切换位置权限

在iOS中切换位置权限,ios,objective-c,cllocationmanager,Ios,Objective C,Cllocationmanager,是否可以动态地将位置权限从“始终允许”切换到“使用时” 我有这个要求,用户可以选择是希望应用程序全天候跟踪他,还是只在应用程序打开时跟踪他 即使设置为“始终允许”,我也可以根据用户偏好检查是否不跟踪它。问题是,用户抱怨说,即使我们选择了“不跟踪”模式,您仍然在请求“始终允许”权限 我所尝试的: - (void) switchToWhenInUsePermissionBasedOnUserPref { [_locManager stopUpdatingLocation]; [_l

是否可以动态地将位置权限从“始终允许”切换到“使用时”

我有这个要求,用户可以选择是希望应用程序全天候跟踪他,还是只在应用程序打开时跟踪他

即使设置为“始终允许”,我也可以根据用户偏好检查是否不跟踪它。问题是,用户抱怨说,即使我们选择了“不跟踪”模式,您仍然在请求“始终允许”权限

我所尝试的:

- (void) switchToWhenInUsePermissionBasedOnUserPref
{
    [_locManager stopUpdatingLocation];

    [_locManager requestWhenInUseAuthorization];

    [_locManager startUpdatingLocation];
}

由于iOS的设计原则之一是限制有多少应用程序可以纠缠用户以获得这样或那样做的权限,因此您实际上无法通过编程来完成任何事情


在应用程序需要用户修改已授予的权限的情况下,我看到的是显示一个带有一些相关信息(为什么等)的警报,然后提供一个按钮,将用户带到设备首选项,用户可以自己进行必要的更改。或者不是。

由于iOS的设计原则之一是限制应用程序可以纠缠用户多少次,以获得这样或那样的权限,因此您实际上无法通过编程来完成任何事情


在应用程序需要用户修改已授予的权限的情况下,我看到的是显示一个带有一些相关信息(为什么等)的警报,然后提供一个按钮,将用户带到设备首选项,用户可以自己进行必要的更改。或者不可以。

是,如果用户将“始终允许”更改为“从不”,或者在使用时,我已经这样做了是,如果用户将“始终允许”更改为“从不”,或者在使用时,我已经这样做了