【问题标题】:Determining if user has denied CoreLocation permission确定用户是否拒绝了 CoreLocation 权限
【发布时间】:2012-01-29 12:07:18
【问题描述】:

是否可以通过编程方式确定用户已拒绝使用其位置的权限?

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

【问题讨论】:

    标签: iphone objective-c ios core-location


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以使用CLLocationManager 上的authorizationStatus 类方法确定您的授权状态。这将返回一个CLAuthorizationStatus,其定义为:

      typedef enum {
         kCLAuthorizationStatusNotDetermined = 0,
         kCLAuthorizationStatusRestricted,
         kCLAuthorizationStatusDenied,
         kCLAuthorizationStatusAuthorized
      } CLAuthorizationStatus;
      

      当您尝试启动位置管理器时,如果授权状态未确定,系统会提示用户授权您的应用程序。

      此外,您可以检查locationServicesEnabled 类方法以确定是否在系统范围内启用了定位。

      【讨论】:

        猜你喜欢
        • 2015-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-12
        • 1970-01-01
        • 1970-01-01
        • 2019-09-19
        • 1970-01-01
        相关资源
        最近更新 更多