В моем приложении есть функция, которая должна отслеживать активность пользователя. После прочтения документации Core Motion
я обнаружил, что CMMotionActivityManager
обрабатывает это для меня.
На данный момент у меня есть следующий код, который проверяет, есть ли у пользователя разрешения:
guard CMMotionActivityManager.isActivityAvailable() else {
showErrorAlert(title: "Error", message: "Your phone don't support this functionality due to hardware limitation.")
return
}
guard CMMotionActivityManager.authorizationStatus() == .authorized || CMMotionActivityManager.authorizationStatus() == .notDetermined else {
showErrorAlert(title: "Error", message: "Motion's permission is required to run this functionality. Enable it in your phone settings.")
return
}
activityManager.startActivityUpdates(to: OperationQueue.main) { [weak self] (activity: CMMotionActivity?) in
self?.currentActivity = activity
}
В настоящее времяУ меня есть следующая проблема: activityManager.startActivityUpdates
запрашивает разрешение в асинхронном режиме, однако у него нет обратного вызова или ошибки, когда пользователь не принимает разрешение.
Как мне обращаться со случаемчто пользователь не принимает разрешения?