提示对运动和健身数据的许可
Posted
技术标签:
【中文标题】提示对运动和健身数据的许可【英文标题】:Prompting permission for Motion & Fitness data 【发布时间】:2015-10-18 21:46:57 【问题描述】:我希望在应用启动后立即提示用户访问运动和健身数据 (CoreMotion)。
现在我正在尝试对数据进行“虚拟”查询以提示对 application:didFinishLaunchingWithOptions
的权限
CMMotionActivityManager *motionActivityManager=[[CMMotionActivityManager alloc]init];
[motionActivityManager startActivityUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMMotionActivity *activity)
NSLog(@"Dummy query to prompt permission from user");
];
但是发生的情况是应用程序启动并且它挂在启动屏幕上 - 如果我按下主页按钮然后应用程序尝试关闭然后权限提示弹出。
有没有想过如何做到这一点?
【问题讨论】:
如何将其移至 willFinishLaunchingWithOptions: 做了同样的问题。 【参考方案1】:我研究了运动管理器并尝试创建一个用于运动检测的库。 从那,我知道当下面的代码执行时,运动检测的权限会弹出。
CMMotionActivityManager *motionActivityManager = [[CMMotionActivityManager alloc]init];
[motionActivityManager startActivityUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMMotionActivity *activity)
NSLog(@"Motion...%@",activity);
];
希望这会对您有所帮助。 谢谢。
【讨论】:
在我将它转换为 Swift 之后,这对我有用。我只是让它在我的流程中稍后停止,但它很好地提示了请求!【参考方案2】:有同样的问题。对我有用的修复是在第一个视图完全加载并调用其所有代表之后的某个位置启动运动管理器。
似乎 startActivityUpdatesToQueue 方法会阻塞,直到它在权限上以一种或另一种方式被接受,但权限请求不会显示在屏幕上,直到第一个视图出现为止。因此,如果您在该时间之前使用此方法,它只会阻止应用程序完成启动,并且启动屏幕将继续。
【讨论】:
你用什么方法拨打电话?仍然挂在接口控件的didAppear()
之类的方法中
即使我将 startActivityUpdatesToQueue 放在 viewDidAppear() 方法中也不显示以上是关于提示对运动和健身数据的许可的主要内容,如果未能解决你的问题,请参考以下文章