是否可以通过编程方式确定用户是否已拒绝使用其位置的权限?
其次,如果用户拒绝了权限,是否可以重新提示用户?
答案 0 :(得分:14)
您可以使用authorizationStatus
上的CLLocationManager
类方法确定授权状态。这将返回CLAuthorizationStatus
,其定义为:
typedef enum {
kCLAuthorizationStatusNotDetermined = 0,
kCLAuthorizationStatusRestricted,
kCLAuthorizationStatusDenied,
kCLAuthorizationStatusAuthorized
} CLAuthorizationStatus;
如果在您尝试启动位置管理器时未确定授权状态,系统将提示用户授权您的应用程序。
此外,您可以检查locationServicesEnabled
类方法以确定系统范围内是否启用了位置。
答案 1 :(得分:3)
此外 - 如果locationServicesEnabled返回NO并且您无论如何都尝试启动位置服务,系统将提示用户确认是否应重新启用位置服务。