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

Nei*_*Net 15 ios core-motion

如果应用需要访问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.
}
Run Code Online (Sandbox Code Playgroud)

Doc*_*Doc 15

苹果有一个示例项目,演示如何查询和所有不同的权限(包括运动动作)请求访问这里.我建议你快速看一下 - 这很简单.

  • `[CMMotionActivityManager isActivityAvailable]`返回设备是否支持运动数据的布尔值,而不是用户是否已授予应用程序使用它的权限.也就是说,没有办法重新申请许可.您只能看到您是否拥有权限,如果没有,则提醒用户进入"设置"应用并自行启用. (2认同)

Bil*_*lly 3

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

+ (CMAuthorizationStatus)authorizationStatus;