确定用户是否拒绝了CoreLocation权限

7

是否有可能通过程序确定用户已拒绝使用其位置?

其次,如果用户已拒绝权限,是否可以重新提示用户?

2个回答

14

您可以使用CLLocationManager类方法中的authorizationStatus来确定您的授权状态。这将返回一个被定义为CLAuthorizationStatus的对象:

typedef enum {
   kCLAuthorizationStatusNotDetermined = 0,
   kCLAuthorizationStatusRestricted,
   kCLAuthorizationStatusDenied,
   kCLAuthorizationStatusAuthorized
} CLAuthorizationStatus;
系统将在您尝试启动位置管理器时提示用户授权您的应用程序(如果授权状态为未确定)。此外,您可以检查locationServicesEnabled类方法以确定系统范围内是否启用了位置。

3
此外 - 如果 locationServicesEnabled 返回 NO 并且您仍试图启动位置服务,则系统将提示用户确认是否应重新启用位置服务。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接