может быть, уже слишком поздно.
Я посмотрел на приложение, которое вы упомянули на http://itunes.apple.com/us/app/radio-alarm-clock-mp3-radio/id380271167?mt=8, и да, я думаю, что вы абсолютно правы, единственный способ добиться того, чтобы приложение оставалось активным в фоновом режиме, - это воспроизводить фальшивый звук, пока он на заднем плане, что должно быть запрещено Apple.
Я также видел, что они не используют дистанционное управление iPod, и это было странно на первый взгляд.
В конце концов, я считаю, что они делают следующее:
- Избегайте вызова beginReceivingRemoteControlEvents, который позволяет активировать элементы управления iPod в фоновом режиме (на самом деле их нет)
- Таким образом, в строке состояния не отображается значок воспроизведения, пока
приложение воспроизводит аудио
- Когда приложение работает в фоновом режиме, оно, вероятно, периодически воспроизводит звук (например, раз в 10 секунд), таким образом, приложение остается активным
- Я видел, что они также избегали управления прерываниями, например, в случае, если другое приложение находится на переднем плане и воспроизводит музыку. И снова Apple должна была отклонить приложение по этой причине, потому что это противоречит правилам, которым они должны следовать в фоновом режиме, но, возможно, они не увидели его во время приемочных испытаний.
Итак, моя интерпретация заключается в том, что они намеренно пропустили активацию элементов управления iPod, просто чтобы не показывать значок воспроизведения в строке состояния в фоновом режиме. Таким образом, пользователи не знают, что приложение активно, и после закрытия делают что-то странное.
Кроме того, вы можете видеть, что приложение не прерывает работу, когда другое приложение воспроизводит на переднем плане звук или звук, потому что в противном случае они рискуют перезапустить приложение вовремя, когда сработает будильник.
Это просто моя идея, как они это делают, и я думаю, что это единственный способ для аудио-приложения на iOS оставаться активным, пока оно находится в фоновом режиме и должно быть остановлено (ну, в случае, если Apple не видит хитрости ).