Android, el icono de alarma en el lado derecho del área de notificación?

Cuando establezco una alarma con la aplicación de reloj incorporado, aparecerá un icono en el lado derecho del área de notificación. Pero no estará allí si configuro una alarma con AlarmManager. ¿Hay alguna manera de que pueda mostrar ese icono?


Me pareció que parece que despertador realmente escribe registros a un ContentProvider en lugar de utilizar AlarmManager directamente. Lo intentaré mañana.

Y parece que el proveedor no tiene la intención de ser utilizado por otras aplicaciones.

¿Hay alguna manera de que pueda mostrar ese icono?

Ese icono es para la aplicación Despertador que forma parte del firmware. Ese icono sólo aparecerá si el usuario tiene una alarma activa del despertador. No puede ser manipulado directamente por el SDK de Android.

Este icono es parte de la aplicación de AlarmClock no el androide SDK. Android tiene una aplicación incorporada (stock) AlarmClock, pero muchos proveedores (como Samsung) la están reemplazando por la suya. Así que no hay una forma segura de mostrar ese icono en particular de su aplicación.

El mejor enfoque es crear su propio icono ya que está realizando una aplicación que establece alarmas y desea que se notifique a sus usuarios.

PS Aquí está el código de la actividad que muestra el icono en la aplicación stock AlarmClock como se puede ver en la línea 181, el dibujable del icono es R.drawable.stat_notify_alarm y no Android.R.drawable.stat_notify_alarm para que no pueda usarlo.

Espero que esto ayude…

(cross-posted from self-answer en la pregunta relacionada: Controlling the Alarm icon in status bar )


V5 Lollipop

Lollipop finalmente eliminó las características privadas de la API. Esta técnica ya no funciona desde v5.

He publicado una nueva pregunta sobre Lollipop específicamente, y espero tener respuestas pronto:

  • Lollipop API para controlar el icono de alarma en la barra de estado

Pre-Lollipop

Así es como se hace, usando propiedades privadas de api :

protected void setStatusBarIcon(boolean enabled) { Intent alarmChanged = new Intent("android.intent.action.ALARM_CHANGED"); alarmChanged.putExtra("alarmSet", enabled); sendBroadcast(alarmChanged); } 

Gracias a Andy Savage en este hilo de Google Groups:

  • AlarmManager con icono de alarma
  • Enlace directo a la publicación archivada

Nota importante: como se indicó anteriormente, esto utiliza propiedades privadas, indocumentadas. Todas las advertencias habituales se aplican en torno a esto, como ha señalado Dianne Hackborn en el mismo hilo:

Tenga en cuenta que cuando vea una cadena en bruto como esa ("android.intent.action.ALARM_CHANGED" y "alarmSet"), las campanas de advertencia deben estar apagando en su cabeza que esto está usando APIs privadas.

Y de hecho esto es.

Si utiliza esto, no se sorprenda si se rompe en el futuro al azar no funciona en algunos dispositivos.

De lo que entiendo de tu pregunta, te preguntas cómo hacer que los iconos aparezcan en el área de notificación.

Tendrás que programarlo tú mismo. La documentación lo describe muy bien.

http://developer.android.com/guide/topics/ui/notifiers/notifications.html

  • Ocultar la barra de progreso del área de notificación en android cuando se completa el 100%
  • Android: Después de crear una nueva notificación, la más antigua se reemplaza
  • Cómo recibir correo electrónico de gmail android
  • Atrapar en el golpe para despedir el evento
  • Al hacer clic en Acciones de notificación de Android no cierra el cajón de notificaciones
  • Android: Cómo distinguir CLEAR todos los eventos de la barra de notificaciones de la acción del usuario
  • Notificaciones locales en Android?
  • Vista personalizada con clics en Notificación en Android 2.3 o inferior
  • Cómo reproducir un sonido de notificación de Android
  • La aplicación de Android no recibe la notificación de FCM cuando se cierra
  • Tamaño del icono de notificación en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.