【问题标题】:How to detect result from authorization dialog Core Motion?如何检测授权对话框 Core Motion 的结果?
【发布时间】:2020-05-21 16:35:13
【问题描述】:

我正在开发一个使用 Core Motion 的应用程序。在应用程序的初始启动过程中,它会请求用户许可,我们基本上希望根据该弹出窗口的响应(允许/拒绝)来更新 UI。对于通知和位置服务,这似乎很容易做到,它不喜欢 Core Motion 存在请求权限 API,而是像我们现在一样在管理器上开始更新时触发弹出窗口:

let motionManager = CMMotionActivityManager()
motionManager.startActivityUpdates(to: OperationQueue.main) {
    // do stuff
}

理想情况下,我希望能够检测到 CMMotionActivityManager.authorizationStatus() 中的更改,但到目前为止,除了实现一个检查此属性的计时器之外,我还没有提出可行的解决方案,而我没有感觉是一个特别好的解决方案。

我尝试使用 Combine 将 authorizationStatus() 或管理器作为一个整体设为 observable,但这似乎不会触发任何更新。

【问题讨论】:

    标签: ios swift core-motion combine


    【解决方案1】:

    如果用户拒绝了权限,则她无法在不转到“设置”应用的情况下授予权限。所以你不需要检查计时器。在应用启动和通知applicationWillEnterForegrounddidBecomeActiveNotification 上检查就足够了。

    【讨论】:

    • 感谢您的回复,但是我正在尝试确定授权以响应用户与系统权限对话框的交互,类似于使用推送通知您可以这样做@ 987654323@
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 2011-12-19
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    相关资源
    最近更新 更多