我想检查是否启用了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);
}];
}
但是我不想自动询问权限,仅检查其状态。有可能吗?
您可以使用authorizationStatus类属性。
if (CMMotionActivityManager.authorizationStatus == CMErrorMotionActivityNotAvailable)
这不应触发许可请求。
仅检查状态,请使用类别功能authorizationStatus
。
CMMotionActivityAuthorizationStatus status = [CMMotionActivityManager authorizationStatus]
这将返回CMAuthorizationStatus
枚举的值:
notDetermined
表示您的应用尚未请求许可。
使用功能isActivityAvailable
确定“ whether motion data is available on the device”