の認証ステータスを取得したいCMMotionActivityManager
。カレンダーや場所などの他のサービスについては、これらのクラスのユーザー承認ステータスを提供する API のプロパティがあります。CMMotionActivityManager
クラスの承認ステータスを取得するにはどうすればよいですか?
5344 次
4 に答える
4
これが私がやっている方法です:
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")
}
})
于 2016-02-12T02:05:38.313 に答える
3
Swift 3.0 用に Zakaria の回答を少し調整する必要があり、また新しいエラーによって問題が発生したため、コードを取得するためにそれを 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()
})
}
于 2017-12-21T01:31:25.190 に答える