CMMotionManager и CMMotionActivityManager показывают неверное значение в Swift
Я пытаюсь использовать CMMotionManager, чтобы отследить, бегает ли пользователь, гуляет или едет. В состоянии покоя он показывает вождение, предполагая, что он отображает старое значение. Как я могу очистить кеш, чтобы он показывал правильную вещь или, альтернативно, могло ли быть что-то не так с моим кодом, заставляющим его показывать автомобильный, когда телефон отдыхает:
Вот мой код:
//at beginning of class
let motionManager = CMMotionManager()
let motionActivityManager = CMMotionActivityManager()
//in viewdidload
if self.motionManager.isAccelerometerAvailable {
self.motionManager.accelerometerUpdateInterval = 0.01
motionActivityManager.startActivityUpdates(to: .main) { (activity) in
guard let activity = activity else {
return
}
if activity.walking {
self.rightBarButton.title = ""
}
else if activity.running {
self.rightBarButton.title = ""
}
else if activity.cycling {
self.rightBarButton.title = ""
}
else if activity.automotive {
self.rightBarButton.title = ""
}
else {
self.rightBarButton.title = "not moving"
}
}
}