我希望在应用启动后立即提示用户访问Motion&健身数据(CoreMotion)。
现在我正在尝试对数据执行“虚拟”查询以提示application:didFinishLaunchingWithOptions
上的权限
CMMotionActivityManager *motionActivityManager=[[CMMotionActivityManager alloc]init];
[motionActivityManager startActivityUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMMotionActivity *activity) {
NSLog(@"Dummy query to prompt permission from user");
}];
但是会发生什么是应用程序启动并挂起在启动画面上 - 如果我按下主页按钮,则应用程序尝试关闭,然后弹出权限提示。
有没有想过如何做到这一点?
答案 0 :(得分:5)
我研究了运动管理器并试图创建一个用于运动检测的库。 从那以后,我知道下面的代码执行时会弹出动作检测的许可。
CMMotionActivityManager *motionActivityManager = [[CMMotionActivityManager alloc]init];
[motionActivityManager startActivityUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMMotionActivity *activity) {
NSLog(@"Motion...%@",activity);
}];
希望这会对你有所帮助。 谢谢。
答案 1 :(得分:1)
有同样的问题。对我有用的修复是在第一个视图完全加载并调用其所有委托后,在一个位置启动运动管理器。
看起来方法startActivityUpdatesToQueue会阻塞,直到它在权限被接受时有这样或那样的单词,但是直到第一个视图的屏幕才会在屏幕上显示权限请求。因此,如果您在此之前使用此方法,则只会阻止应用程序完成启动,并且启动屏幕将继续。