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

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

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

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

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

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

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

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


person BA in NOLA    schedule 02.04.2014    source источник
comment
Ничего не знаю об iOS (парень с Android), но нельзя ли декомпилировать это приложение? (обязательно требуется джейлбрейк). (можно легко сделать в Android, но код вообще запутан)   -  person xav    schedule 03.04.2014
comment
Хороший звонок, xav. Я не рассматривал возможность этого, но теперь буду. Я думаю, я могу сделать джейлбрейк старого телефона, который я больше не использую, и посмотреть, что я могу обнаружить. Я посмотрю на это и опубликую все инструкции для этого (это будет мой первый раз). Спасибо!   -  person BA in NOLA    schedule 03.04.2014
comment
@BAinNOLA Вы выяснили, как приложение Alarmy может воспроизводить музыку при срабатывании будильника?   -  person Nimesh Chandramaniya    schedule 11.06.2019


Ответы (2)


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

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

person Andrew    schedule 31.01.2017
comment
можете ли вы объяснить, что вы подразумеваете под музыкальным режимом сна, чтобы получить их через AppStore. Я также использую музыку для сна в фоновом режиме в своем приложении. Нужны ли мне какие-то хитрости, чтобы пройти через магазин приложений? - person Spring; 06.05.2019

person    schedule
comment
он переходит в «да», если ваш звук itune включен, иначе он переходит в «нет», если звук отключен от музыкального проигрывателя itune ... Таким образом, вы можете легко взломать по умолчанию MusicPlayer. Звук включен или выключен. Вам нужно добавить фреймворд медиаплеера. Просто попробуйте, это сработает. Правильно.... Спасибо... :) - person Kaushik Movaliya; 07.04.2015