我想獲得CMMotionActivityManager
的授權狀態。對於日曆和位置等其他服務,我們在API中擁有一些屬性,這些屬性爲我們提供了這些類的用戶授權狀態。我如何獲得CMMotionActivityManager
課程的授權狀態?CMMotionactivitymanager authorizationstatus
2
A
回答
9
CMMotionActivityManager目前不提供像其他框架一樣直接檢查授權狀態的方法。
iOS - is Motion Activity Enabled in Settings > Privacy > Motion Activity
然而,正如上面的問題提意見,如果你嘗試使用
queryActivityStartingFromDate:toDate:toQueue:withHandler
查詢和用戶沒有授權的應用程序時,處理器(CMMotionActivityQueryHandler)將返回該錯誤。
CMErrorMotionActivityNotAuthorized
3
這裏是我如何做它:
manager = CMMotionActivityManager()
let today = NSDate()
manager.queryActivityStartingFromDate(today, toDate: today, toQueue: NSOperationQueue.mainQueue(),
withHandler: { (activities: [CMMotionActivity]?, error: NSError?) -> Void in
if let error = error where error.code == Int(CMErrorMotionActivityNotAuthorized.rawValue){
print("NotAuthorized")
}else {
print("Authorized")
}
})
+2
好的孩子們,請記住添加manager.stopActivityUpdates()到處理程序。 :) – CodeReaper
+0
好趕上!謝謝 –
1
我不得不調整扎卡利亞的回答有點爲雨燕3.0,也是新誤的問題,所以我不得不將其轉換回NSError獲取代碼,但這是我的功能現在的樣子。謝謝!
func triggerActivityPermissionRequest() {
let manager = CMMotionActivityManager()
let today = Date()
manager.queryActivityStarting(from: today, to: today, to: OperationQueue.main, withHandler: { (activities: [CMMotionActivity]?, error: Error?) ->() in
if error != nil {
let errorCode = (error! as NSError).code
if errorCode == Int(CMErrorMotionActivityNotAuthorized.rawValue) {
print("NotAuthorized")
}
} else {
print("Authorized")
}
manager.stopActivityUpdates()
})
}
相關問題
- 1. 重置[PHPhotoLibrary authorizationStatus]
- 2. CMMotionActivityManager isActivityAvailable設備
- 3. 如何使用CMMotionActivityManager並接收更新?
- 4. 如何將AuthorizationStatus的值從ABAddressBook更改爲kABAuthorizationStatusAuthorized?
- 5. 當用戶不允許使用CMMotionActivityManager回調
- 6. 調用[CLLocationManager authorizationStatus]時出現意外延遲/滯後/凍結/阻塞
- 7. CMMotionActivityManager - 在應用程序被暫停或在後臺時接收動作活動更新
- 8. 位置服務使用iOS10重新安裝後停止工作
- 9. requestWhenInUseAuthorization in iOS 8並等待,直到用戶響應
- 10. 更改位置服務中的選項
- 11. 的iOS不從塊看到預期值返回
- 12. 爲Motion&Fitness數據提示權限
- 13. 在Swift中請求訪問聯繫人3
- 14. AVCaptureDevice.requestAccessForMediaType永遠不會彈出窗口,並總是返回false
- 15. 如何重定向到基於位置服務的iOS
- 16. 切換攝像頭權限導致崩潰
- 17. didUpdateLocation不是第一次運行
- 18. Xcode更改我的應用程序的位置服務
- 19. CLLocationManager不會將位置發送到didUpdateLocations方法
- 20. 使用ABAddressBook中的數組加載UITableView(Swift)
- 21. Core Motion是否需要授權/ .plist信息?
- 22. CLLocationManager返回空值
- 23. EventKit saveEvent在iOS 7中無法正常工作
- 24. iOS8何時分配初始化CLLocationManager來調用requestWhenInUseAuthorization?
- 25. 目標C - CLLocationManager崩潰
- 26. 不容GET htmlproof接受的忽略模式
- 27. 確定iOS中的用戶活動?
- 28. 檢查運動和健身選項是可用的設置
- 29. 如何存儲ALAuthorizationStatus在NSDictionary中
- 30. 如何撤銷/取消/取消註冊iOS應用內的「位置服務」
的可能重複的[iOS的 - 是在設置>隱私>運動活動啓用運動活動(http://stackoverflow.com/questions/21005990/ios-is-motion-activity-enabled-in-settings -privacy-motion-activity) –