Я пытаюсь получить данные Core Motion от Apple Watch 3 (WatchOS 5.1), но, хотя DeviceMotion доступен (свойство isDeviceMotionAvailable
равно true
), обработчик никогда не запускается. Сразу после синтаксического анализа super.willActivate()
в консоли появляется следующее сообщение:
[Gyro] Вручную установите калибровку прерывания гироскопа на 800
Я использую следующую функцию для получения обновлений движения устройства:
func startQueuedUpdates() {
if motion.isDeviceMotionAvailable {
self.motion.deviceMotionUpdateInterval = 1.0 / 100.0
self.motion.showsDeviceMovementDisplay = true
self.motion.startDeviceMotionUpdates(using: .xMagneticNorthZVertical, to: self.queue, withHandler:{
(data, error) in
// Make sure the data is valid before accessing it.
if let validData = data {
print(String(validData.userAcceleration.x))
}
})
}
}
В InterfaceController я объявил
let motion = CMMotionManager()
let queue : OperationQueue = OperationQueue.main
Кто-нибудь встречал это сообщение раньше и смог его решить?
Примечание. Я проверил свойство isGyroAvailable
, и оно равно false
.