ios xcode audio push-notification backgrounding

ios - La aplicación "Alarmy" puede reproducir canciones de iTunes desde el estado de fondo... ¿Cómo?



xcode audio (2)

He estado revisando toda la documentación relacionada con los estados de fondo y los permisos para reproducir audio en iOS y no puedo entender cómo una aplicación en particular puede reactivarse en un momento específico en el futuro y reproducir sonidos no empaquetados. Estoy investigando el problema porque me gustaría agregar esta funcionalidad (como muchas otras que he visto) a una aplicación que estoy creando.

La aplicación en cuestión es "Alarmy", anteriormente "Duerme si puedes". Es un despertador. A diferencia de la mayoría de los despertadores de la tienda de aplicaciones, es capaz de reproducir una canción de iTunes como un sonido de alarma sin estar en primer plano. Puede omitir el conmutador de anillo / silencio, aumentar el volumen al máximo y reproducir una canción preseleccionada de una biblioteca local de iTunes cuando aparentemente (o debería) estar en un estado de fondo.

No conozco ninguna forma de investigar qué está haciendo Alarmy mientras espero la hora de la alarma, pero puedo ver que tiene habilitados los servicios de ubicación, los datos móviles habilitados y la actualización de fondo habilitada. Sin embargo, incluso con todos estos desactivados en la configuración, la alarma sigue funcionando y reproduce una canción de iTunes. También tengo que suponer que Alarmy no está jugando al silencio hasta la hora de la alarma, ya que no hubiera pasado por el proceso de envío de Apple (o podrían haberse perdido esto, y el campo de juego ahora es totalmente desigual).

Tiene una característica que parece un poco fuera de lugar: la aplicación muestra información meteorológica. Esto no es necesariamente una pelusa completa, puedo ver algún valor en eso para una aplicación de alarma, pero es posible que estén consultando alguna API meteorológica a intervalos suficientemente cortos para mantener la aplicación despierta en el fondo hasta la hora de la alarma. ? Si lo son, ¿qué aspecto tendría? Además, las API meteorológicas son de uso gratuito hasta un cierto número de consultas, pero tienen muchas descargas y asumo muchas consultas. Para una aplicación paga de precio fijo sin IAP, no parece ser un gran modelo de negocio.

Entonces, para concluir, en mi humilde opinión, esta función no puede provenir de ningún permiso de Audio en segundo plano ya que la aplicación no está reproduciendo audio cuando entra en segundo plano (a menos que sea silencioso y simplemente tuvieron suerte y pasaron por el proceso de envío); puede provenir de la actualización continua de la aplicación en segundo plano para los servicios de ubicación / clima (y luego a través de un temporizador simple que cuenta hasta la hora de inicio de alarma) pero la función aún funciona cuando los servicios de actualización y ubicación de fondo están desactivados para la alarma. ¿Podría ser que los permisos estén ahí, por lo que, aunque la aplicación no tiene permiso para acceder a la información de ubicación, el iOS aún le permite estar activo en segundo plano?

Un último pensamiento: ¿existe una técnica de inserción silenciosa mediante la cual pueden estar presionando una notificación a la aplicación en el momento del evento y verificando si es hora de que toque el tono de alarma? Disparo en la oscuridad allí ...

¡Cualquier idea sobre el asunto ayudaría muchísimo! ¡Me estoy tirando de los pelos! Puedo editar esta publicación y agregar más información, es decir, qué recursos ya he analizado, si lo desea, pero estoy bastante seguro de haber examinado todos los recursos posibles. De nuevo, muchas gracias por cualquier ayuda.


if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying) { NSLog(@"yes itune Player Sound is on"); } else { NSLog(@"NO itune Player Sound is not on"); }


Están usando el modo de fondo de audio, está listado en su info.plist. Usan el archivo "NoSound.mp3" en su paquete para reproducir el silencio, mientras están en segundo plano. También tienen un modo "Sleep music" para que pasen por la AppStore.

Para otras formas que puede usar, consulte este artículo .