【发布时间】:2019-10-15 22:28:15
【问题描述】:
当在手机的“设置”>“隐私”>“运动与健身”中禁用“健身追踪”状态时,我正在检查 CMMotionActivityManager 的 authorizationStatus()。对于系统范围的限制,我得到了正确的“受限”状态。
当我启用“健身追踪”并将我的应用从后台返回到前台时,authorizationStatus() 仍然返回“受限”。如果我刷出/终止应用程序并重新启动,它会更改授权状态。
有没有办法在将应用程序从后台带到前台时刷新authorizationStatus()。
谢谢!
【问题讨论】:
-
否,在设置中更改授权状态不会导致应用崩溃。我必须手动终止应用程序才能重新启动。
-
在我看来(也可能是你的),如果用户从限制更改为授予并且您没有崩溃,并且当您再次询问授权状态时获得过时的信息,那是一个错误并且你应该报告它。但是,我要补充一点,您永远不应该只相信授权状态告诉您的内容;除非您通过尝试使用活动管理器“逗弄”系统,否则什么都不会发生。你在这样做吗?
-
换句话说,你应该开始更新或查询活动不管你从授权状态调用中得到什么结果。如果您未获得授权,则不会发生任何事情,也不会造成任何伤害。 (您将在完成处理程序上按顺序收到错误。)
-
谢谢,无论授权状态如何,我都尝试通过启动活动更新来“搔痒”。它仍然没有刷新状态。这似乎是一个错误。让我报告一下,看看苹果怎么说。谢谢!
-
只是确认我也看到了与 AG 相同的结果(状态不是“刷新”)。由于切换全局运动权限时应用程序不会崩溃,我想我将只显示一个对话框,告诉用户自己重新启动应用程序。当然,最好的用户体验将取决于实施/产品。
标签: ios swift core-motion