禁用自动许可请求

问题描述 投票:0回答:2

我想检查是否启用了Motion权限,但是我发现的唯一方法是此方法(也支持iOS 11之前的版本:

CMMotionActivityManager * activityManager =  [[CMMotionActivityManager alloc]init];
NSDate* today = [NSDate date];

[activityManager queryActivityStartingFromDate:today toDate:today toQueue:[NSOperationQueue mainQueue] withHandler:^(NSArray<CMMotionActivity *> * _Nullable activities, NSError * _Nullable error) {

    NSLog(@"result is %d",error && error.code != CMErrorMotionActivityNotAvailable);
    }];
}

但是我不想自动询问权限,仅检查其状态。有可能吗?

ios objective-c
2个回答
0
投票

您可以使用authorizationStatus类属性。

 if (CMMotionActivityManager.authorizationStatus == CMErrorMotionActivityNotAvailable)

这不应触发许可请求。


0
投票

仅检查状态,请使用类别功能authorizationStatus

CMMotionActivityAuthorizationStatus status = [CMMotionActivityManager authorizationStatus]

这将返回CMAuthorizationStatus枚举的值:

  • 不确定
  • 受限
  • 被拒绝
  • 授权

notDetermined表示您的应用尚未请求许可。

使用功能isActivityAvailable确定“ whether motion data is available on the device

© www.soinside.com 2019 - 2024. All rights reserved.