Watch OS3 не может получить данные акселерометра, когда экран выключен

Кажется, невозможно получить данные акселерометра в реальном времени на WatchOS после того, как запястье опущено, экран выключен. получение данных из CMMotionManager остановится через несколько секунд для ухода за батареей Apple.

Вы можете запрашивать данные из HKWorkoutSession в фоновом режиме, например: количество шагов, калорий, частоту сердечных сокращений, но он не может запрашивать данные акселерометра или данные CMDeviceMotion.

Я много гуглю и тестирую этот код.
https://developer.apple.com/videos/play/wwdc2016/713/

Это не точно из-за проблемы с выключенным экраном. Он не будет печатать данные CMDeviceMotion в XCode, когда ваш экран выключен.

Кто-то говорит, что MSensorRecorder может работать, но у него задержка 3 секунды.

Есть ли способ получить это?


person Haozes    schedule 07.05.2017    source источник


Ответы (1)


Когда экран выключен, ваше приложение приостанавливается. Итак, ваша проблема не в том, что «CMMotionManager не предоставляет данные, когда экран выключен», а в том, что «мое приложение не работает, когда экран выключен».

В качестве обходного пути вы можете начать тренировку: пока тренировка активна, ваше приложение будет работать в фоновом режиме, и вы сможете продолжать запрашивать данные из CMMotionManager так же, как вы делаете это сейчас. Но будьте осторожны: приложение не может использовать более 15% ЦП во время фоновой тренировки, иначе оно будет остановлено сторожевым таймером.

Посмотрите это видео WWDC, чтобы узнать больше о режимах тренировки и фоновых режимах: Создание отличных приложений для тренировок, Поддержание актуальности приложения для часов, Архитектура для повышения производительности в watchOS 3

person abjurato    schedule 28.05.2017