确定用户是否允许访问我的iOS应用中的"运动和健身"权限

Eug*_*ene 1 cocoa-touch ios core-motion

我正在XCode 7.0上构建一个iPhone应用程序(9.0.2).想知道最好的方法是确定用户是否从我的应用程序中访问了Motion和Fitness权限.

我主要使用CMMotionActivityManager类.有一个名为+ isActivityAvailable的属性,但即使Motion和Fitness权限设置为false,它也会返回true.

谢谢!

den*_*kim 5

根据Apple的文档,[CMMotionActivityManager isActivityAvailable]返回当前设备是否支持运动数据的布尔值,而不是用户是否已授予应用程序使用它的权限.

对于权限,检查用户是否已授予权限的唯一方法是通过错误处理.当您调用的方法需要权限,但该用户未授权该应用程序时,CMErrorMotionActivityNotAuthorized将引发错误代码.

从那里,您可以捕获此错误并提示用户授予此应用程序权限.这就是Apple的示例项目(Swift)如何做到的.