CMMotionActivityManager
のstartActivityUpdatesToQueue
をバックグラウンドで使用しようとしています。Core Motionは承認/ .plist情報を必要としますか?
if CMMotionActivityManager.isActivityAvailable() {
CMMotionActivityManager().startActivityUpdatesToQueue(NSOperationQueue.mainQueue(), withHandler: { (activity: CMMotionActivity?) in
if (activity?.automotive)! {
let notification = UILocalNotification()
notification.alertTitle = "Arounder"
notification.alertBody = "User using car"
notification.soundName = "Notification Sound"
notification.category = "category"
UIApplication.sharedApplication().scheduleLocalNotification(notification)
print(notification.alertBody)
} else if (activity?.cycling)! {
let notification = UILocalNotification()
notification.alertTitle = "Arounder"
notification.alertBody = "User is cycling"
notification.soundName = "Notification Sound"
notification.category = "category"
UIApplication.sharedApplication().scheduleLocalNotification(notification)
print(notification.alertBody)
} else if (activity?.walking)! || (activity?.running)! {
let notification = UILocalNotification()
notification.alertTitle = "Arounder"
notification.alertBody = "User is walking/running"
notification.soundName = "Notification Sound"
notification.category = "category"
UIApplication.sharedApplication().scheduleLocalNotification(notification)
print(notification.alertBody)
} else if (activity?.stationary)! {
let notification = UILocalNotification()
notification.alertTitle = "Arounder"
notification.alertBody = "User is standing"
notification.soundName = "Notification Sound"
notification.category = "category"
UIApplication.sharedApplication().scheduleLocalNotification(notification)
print(notification.alertBody)
} else if (activity?.unknown)! {
let notification = UILocalNotification()
notification.alertTitle = "Arounder"
notification.alertBody = "Unknown activity"
notification.soundName = "Notification Sound"
notification.category = "category"
UIApplication.sharedApplication().scheduleLocalNotification(notification)
print(notification.alertBody)
}
})
}
は私がCore Location
(requestAlwaysAuthorization
)のように、ユーザからの許可を取得する必要があります:
しかし、動作するようには思えない、私はこのコードを追加する以外に行う必要があり、追加のものがありますか? .plist
ファイルがありますか?
ありがとうございます!
この答えを見て、彼はあなたがバックグラウンドで活動を得ることができると言った:http://stackoverflow.com/questions/40238591/is-it-possible-to-detect-the-users-moving-activity-on -the-background/40239325#40239325間違っていますか? –
その答えは基本的に私と同じです。アプリを実行させるための位置情報の更新など、他のバックグラウンドモードを使用する必要があります。このバックグラウンド実行を利用して、モーションアクティビティの更新を受け取ることができます。あなた自身のアクティビティを変更してもアプリが停止からバックグラウンドに実行されることはありません – Paulw11
ああ、私は少しはっきりさせておきます:私のアプリでは、地域監視をしています。私が 'didEnterRegion'メソッドに追加したコードを呼び出しています。これは大丈夫ですか? –