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.
Спасибо.