2012-02-25 13 views
20

Tengo que crear una aplicación de despertador para el iPhone en la que el usuario pueda configurar la hora y el sonido de la alarma. Al hacerlo, he usado UILocalNotification para activar la alarma.Aplicación de despertador en iOS

Ahora, en UILocalNotification, primero obtenemos Alerta de notificación con la opción "Cerrar" y "Ver". Si el usuario toca "Ver", mi delegado recibe el mensaje application:didReceiveLocalNotification: y se reproduce el sonido de la alarma.

Pero en la aplicación de alarma nativa del sistema, no vemos una alerta de notificación; solo reproduce directamente el sonido de la alarma. ¿Cómo puedo hacer que mi aplicación use este comportamiento?

Respuesta

3

Estoy seguro de que puede tener su propio sonido de notificación local personalizado.

Ejemplo de código localNotif.soundName = @"alarmsound.caf";

Nota sonido de notificación local tiene que ser de sólo 30 segundos o menos para ser jugados. Puede obtener más info here.

5

Este comportamiento de alarma no está disponible para las aplicaciones de iOS. Usted tiene la capacidad de crear notificaciones locales y agregarles sonidos, pero la duración del sonido es limitada. No puede reproducir continuamente un sonido, como en la alarma incorporada.

Una opción es repetir las alertas. Entonces, su aplicación enviaría una alerta, esperaría un tiempo y luego enviaría otra. Repites un número específico de veces o hasta que el usuario interactúe con tu aplicación. No creo que esto brinde una excelente experiencia de usuario, por lo que no lo recomiendo.

+0

Hola, Me encontré con esto, mientras buscaba algo más. ¿Podemos especificar un intervalo de tiempo personalizado para repetir estas alertas cuando la aplicación se haya ido al fondo – heyjii

33

Estoy de acuerdo con David. La aplicación de alarma integrada de iOS recibe un tratamiento especial de Apple que suena> 30 segundos mientras está en segundo plano. Parece que está usando alguna API privada para que suene durante más tiempo, incluso cuando está en segundo plano o cerrado. Esto no está disponible para otras aplicaciones creadas fuera de Apple, así que no intentes competir con él. Si compras todas las aplicaciones de Despertador en la App Store (también conocido como: aprobado por Apple) y las pruebas una a una, verás que carecen de la aplicación de alarma incorporada en la función más importante de una alarma: es decir, "Sonando". durante un período prolongado, en cualquier estado en que se encuentre la aplicación (activa, de fondo o cerrada) "

Su mejor opción para simular una alarma de fondo es hacer uso de UILocalNotification durante 30 segundos. Si realmente quieres despertar a tu durmiente pesado, programa para disparar cinco de estas notificaciones con sesenta segundos de diferencia o algo así, con la esperanza de que se despierten antes de que termine la quinta notificación.

Tenga en cuenta que con este método, su usuario que pierde la alarma recibirá 5 ventanas emergentes en su pantalla cuando se despierten (menos si se despiertan durante una de las ventanas emergentes de alarma), por lo que pasarán sus primeros segundos de su mañana cerrando esas ventanas emergentes, no la mejor experiencia de usuario.

Conclusión: las aplicaciones de Despertador solo son útiles para el uso en primer plano. La mejor aplicación de alarma que funcionará en cualquier estado es la aplicación de reloj incorporada hecha por Apple.

+6

? Me entristece descubrirlo. –

+1

[iHome + Sleep] (https://itunes.apple.com/de/app/ihome+sleep-alarm-clock-app/id346249053?mt=8) solía tener esto, pero en 2.9 lo eliminaron con el comentar "cambios para cumplir con iOS" ... Parece que si bien es técnicamente posible, Apple no quiere que las aplicaciones utilicen esta función. Vergüenza. Me quedaré con 2.8 –

+0

Estoy muy triste por esto. El más triste de todos. –

0

Si habilita los modos de fondo "Audio, AirPlay y Imagen en imagen" y "Notificaciones remotas", puede usar una notificación de inserción silenciosa para activar el dispositivo y luego comenzar a reproducir audio, siempre y cuando ' Al reproducir el audio, no estará limitado a 30 segundos para responder a la notificación como de costumbre. Esto no funcionará si el usuario ha matado manualmente la aplicación, pero si el usuario lo hace, puede enviar una notificación local para pedirle que vuelva a abrir la aplicación.

Cuestiones relacionadas