提示Motion& amp;健身数据

时间:2015-10-18 21:46:58

标签: ios objective-c appdelegate core-motion

我希望在应用启动后立即提示用户访问Motion&健身数据(CoreMotion)。

现在我正在尝试对数据执行“虚拟”查询以提示application:didFinishLaunchingWithOptions上的权限

CMMotionActivityManager *motionActivityManager=[[CMMotionActivityManager alloc]init];
    [motionActivityManager startActivityUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMMotionActivity *activity) {
        NSLog(@"Dummy query to prompt permission from user");

    }];

但是会发生什么是应用程序启动并挂起在启动画面上 - 如果我按下主页按钮,则应用程序尝试关闭,然后弹出权限提示。

有没有想过如何做到这一点?

2 个答案:

答案 0 :(得分:5)

我研究了运动管理器并试图创建一个用于运动检测的库。 从那以后,我知道下面的代码执行时会弹出动作检测的许可。

CMMotionActivityManager *motionActivityManager = [[CMMotionActivityManager alloc]init];
    [motionActivityManager startActivityUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMMotionActivity *activity) {
        NSLog(@"Motion...%@",activity);
    }];

希望这会对你有所帮助。 谢谢。

答案 1 :(得分:1)

有同样的问题。对我有用的修复是在第一个视图完全加载并调用其所有委托后,在一个位置启动运动管理器。

看起来方法startActivityUpdatesToQueue会阻塞,直到它在权限被接受时有这样或那样的单词,但是直到第一个视图的屏幕才会在屏幕上显示权限请求。因此,如果您在此之前使用此方法,则只会阻止应用程序完成启动,并且启动屏幕将继续。