Я пытаюсь включить некоторые действия ResearchKit в приложение и надеялся, что смогу использовать фитнес-задание «Активный», но время, кажется, останавливается, если iPhone выходит на экран блокировки.
Есть ли какие-нибудьКонфигурация, которая должна быть настроена для правильной работы этой задачи?
У меня включено приложение для фоновых задач, в том числе для определения местоположения, звука и т. Д., Но если я установил продолжительность фитнес-задания на 10 минут, таймер, по-видимому, остановится, когда откроется экран блокировки iPhone.
Я думаю, что приложение не дремлет из-за данных о местоположении, но, похоже, нет.
Я что-то здесь упускаю?
У меня есть другое приложение, которое использует GPS для получения данных о местоположении, и это приложение работает в фоновом режиме в течение многих часов (> 12 часов) и, кажется, никогда не завершает работу с iOS.
Iбудет проводить больше тестов, но кажется, что таймер «Фитнес-задачи» будет довольно тупым, если приложение будет отключено, что в принципе не подходит для этой цели, что удивительно, учитывая, что ResearchKit, похоже, был выпущен Apple.
РЕДАКТИРОВАТЬ:
После просмотра источника ResearchKit я обнаружил следующее:
CLLocationManager не настроен для работы в фоновом режиме
self.locationManager.allowsBackgroundLocationUpdates = YES;
AVAudioSession не будет воспроизводить звук при заблокированном телефоне
if (! [Сеанс setCategory: AVAudioSessionCategoryPlayAndRecordOtionSutionOutionOutionSutionOutionSutionSutionSutionOutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionSutionOU| AVAudioSessionCategoryOptionAllowBluetooth //[.duckOthers, .interruptSpokenAudioAndMixWithOthers, .allowBluetooth] error: & error]) {success = NO;ORK_Log_Warning (@ "Не удалось запустить аудиосеанс:% @", ошибка);}