Приложение "Alarmy" способно воспроизводить iTunes песни из фонового состояния... Как?

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

Приложение, о котором идет речь, - "Alarmy" - ранее "Спи, если сможешь". Это будильник В отличие от большинства других будильников в магазине приложений, он может воспроизводить песню iTunes как сигнал будильника, не находясь вообще на переднем плане. Он может обходить переключатель "звонок / беззвучный режим", увеличивать громкость до максимума и воспроизводить предварительно выбранную песню из локальной библиотеки iTunes, когда она, по-видимому (или должна быть), находится в фоновом режиме.

Я не знаю какого-либо способа выяснить, что делает Alarmy в ожидании времени будильника, но я вижу, что в нем действительно включены службы определения местоположения, сотовые данные и фоновое обновление. Однако, даже если все это отключено в настройках, будильник все еще работает и воспроизводит песню iTunes! Я должен также предположить, что Alarmy не играет молчание до времени будильника, так как он не прошел бы через процесс представления Apple (или они могли просто пропустить это, и игровое поле теперь совершенно неравномерно).

У него есть функция, которая кажется немного неуместной - приложение отображает информацию о погоде. Это не обязательно полный пух - я вижу в этом какое-то значение для приложения сигнализации - но возможно ли, что они запрашивают API погоды через достаточно короткие промежутки времени, чтобы приложение оставалось активным в фоновом режиме до момента тревоги? Если бы они были, как бы это выглядело? Кроме того, погодные API могут использовать до определенного количества запросов, но они имеют много загрузок, и я предполагаю, что много запросов. Для платного приложения с фиксированной ценой, без IAP, это не похоже на отличную бизнес-модель.

Итак, в заключение, IMHO, эта функция не может быть получена из каких-либо разрешений Background Audio, так как приложение не воспроизводит аудио активно, когда оно входит в фон (если только не было молчания, и им просто повезло и они проскользнули через процесс отправки); это может быть связано с постоянным обновлением приложения в фоновом режиме для служб определения местоположения / погоды (а затем с помощью простого таймера, возвращающегося к времени срабатывания будильника), но эта функция все еще работает, когда фоновое обновление и службы определения местоположения отключены для сигнала тревоги. Может ли быть так, что разрешения есть, поэтому даже если приложению не разрешен доступ к информации о местоположении, iOS все же позволяет ему быть активным в фоновом режиме?

Одна последняя мысль: существует ли техника беззвучного нажатия, при которой они могут отправлять уведомление приложению во время события и проверять, настало ли время для срабатывания сигнала будильника? Застрелен в темноте там...

Любое понимание этого вопроса поможет тонне! Я вырываю волосы! Я могу отредактировать этот пост и добавить больше информации - например, какие ресурсы я уже просматривал - если хотите, но я совершенно уверен, что я просмотрел все возможные ресурсы там. Еще раз огромное спасибо за любую помощь.

2 ответа

Они используют режим звукового фона, он указан в их info.plist. Они используют файл "NoSound.mp3" в своем комплекте для воспроизведения тишины, находясь в фоновом режиме. У них также есть режим "Спящая музыка", чтобы пройти через AppStore.

Для других способов, которые вы можете использовать, проверьте эту статью.

if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying)
{
       NSLog(@"yes itune Player Sound is on");
}
else
{
      NSLog(@"NO itune Player Sound is not on");
}
Другие вопросы по тегам