iOS – 在设置>隐私>动作活动中启用动作活动

如果应用程序需要访问Motion Activity数据,则会在安装时询问用户。 但是,如果用户不小心回答“否”,那么该应用程序将无法工作。

我正在寻找一种方法来检查运动活动是否启用,以便我可以提示用户启用,如果没有。

请有人指出我的方向正确的代码明智吗?


在Doc(谢谢)的信息之后,Apple似乎没有提供直接的方法来检查隐私中的“ Motion Activity ”状态。 我能够发现错误:

 [stepCounter queryStepCountStartingFrom:[NSDate date] to:[NSDate date] toQueue:[NSOperationQueue mainQueue] withHandler:^(NSInteger numberOfSteps, NSError *error) { if (error != nil && error.code == CMErrorMotionActivityNotAuthorized) { // The app isn't authorized to use motion activity support. } 

苹果有一个示例项目 ,展示了如何检查和请求访问所有各种权限(包括Motion Activity)。 我build议你快速浏览一下 – 这很简单。

CMSensorRecorder ( doc链接 )是iOS 9的新增function, CMSensorRecorder有一个类方法来检查您的应用程序是否授权Motion&Fitness:

  • Switft class func isAuthorizedForRecording() -> Bool
  • Objective-C + (BOOL)isAuthorizedForRecording

iOS 11新增function,CMSSensorRecorder有一个名为authorizationStatus的静态方法来检索它。

+ (CMAuthorizationStatus)authorizationStatus;