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"
                }
            }
        }

0 ответов

Другие вопросы по тегам