确定用户是否拒绝CoreLocation权限
是否有可能以编程方式确定用户拒绝使用其位置的权限?
其次,如果用户拒绝了权限,是否可以重新提示用户?
您可以使用CLLocationManager
上的authorizationStatus
类方法来确定您的授权状态。 这将返回一个CLAuthorizationStatus
,其定义如下:
typedef enum { kCLAuthorizationStatusNotDetermined = 0, kCLAuthorizationStatusRestricted, kCLAuthorizationStatusDenied, kCLAuthorizationStatusAuthorized } CLAuthorizationStatus;
当您尝试启动位置pipe理器时,如果授权状态不确定,系统将提示用户授权您的应用程序。
此外,您可以检查locationServicesEnabled
类方法以确定系统范围是否启用位置。
此外 – 如果locationServicesEnabled返回NO,并且您尝试启动位置服务,则系统将提示用户确认是否应重新启用位置服务。
- 在用户拒绝使用后,如何提示用户打开位置服务
- 在Xcode 4.2 / iOS5中模拟包括移动的位置
- 在使用UIBackgroundModes = location的同时定期唤醒应用程序
- 视图加载之前,位置不更新
- 自iOS 8以来,SignificantLocationChanges不起作用
- 使用模拟器testing自定义位置
- iBeacon监视和后台测距
- 更改iOS地图中的Pin方向
- CLLocationManager geo-fencing / startMonitoringForRegion:vs. startMonitoringForSignificantLocationChanges:与10分钟的startUpdating调用