isMagnetometerAvailable всегда возвращает false на Apple Watch серии 6

Я пишу код для доступа к данным движения с помощью CMMotionManager(). Я могу правильно получить ускорение, ускорение пользователя, гравитацию, отношение и скорость вращения. Теперь я хочу добавить функцию чтения магнитометра. Следуйте существующим кодам, раздел выглядит так

      import CoreMotion
...
let motionManager = CMMotionManager()
...
motionManager.deviceMotionUpdateInterval = 1/10 //in s
motionManager.accelerometerUpdateInterval = 1/128 //in s
motionManager.magnetometerUpdateInterval = 1/100 // in s
...
if motionManager.isMagnetometerAvailable {
    let handler:CMMagnetometerHandler = {(magnetoData:CMMagnetometerData?, error: Error?) -> Void in
    self.read1.setText(String(format: "%.2f", magnetoData!.magneticField.x))
    self.read2.setText(String(format: "%.2f", magnetoData!.magneticField.y))
    self.read3.setText(String(format: "%.2f", magnetoData!.magneticField.z))
    }
    motionManager.startMagnetometerUpdates(to: OperationQueue.main, withHandler: handler)
}

Аналогичные коды для других данных датчика (Ускорение, Ускорение пользователя, Гравитация, Отношение и Скорость вращения) работают хорошо. Однако приведенные выше коды останавливаются на «motionManager.isMagnetometerAvailable», поскольку он всегда возвращает false, чтобы пропустить следующие коды.

Устройство, которое я тестирую, — это iPhone 11 Pro / Apple Watch Series 6.

Спасибо.

0 ответов

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