2010-05-18 27 views
13

Quería crear una notificación sin el icono en la barra de estado (el estado que no está expandido). Probé la vista ampliada personalizada y configuré el ícono solo para esta vista. Pero no funcionó. Cuando doy 0 como ícono al constructor, el ícono desaparece pero la notificación tampoco aparece en la vista expandida.Android: No hay ícono para la Notificación

Notificación de notificación = notificación nueva (0, "", 0);

Probé muchas combinaciones pero no obtuve una solución. Por cierto, sé que está funcionando porque vi esta característica en algunas aplicaciones. Gracias.

+0

Si muestra una barra de notificaciones vacía, ¿por qué debería expandirla el usuario? –

+0

el usuario siempre sabrá que está ahí para servir, pero no se verá afectado por el ícono. –

Respuesta

6

QuickSettings hizo esto y cuando miré ese código vi que usa el constructor predeterminado de Notificación y empuja su ícono a la derecha del barra de notificación. Creo que todavía usa espacio pero no tiene ícono.

Algunos código:

notification = new Notification(); 
notification.flags |= Notification.FLAG_ONGOING_EVENT; 
notification.flags |= Notification.FLAG_NO_CLEAR; 
long hiddenTime = Constants.SDK_VERSION >= 9 ? -Long.MAX_VALUE : Long.MAX_VALUE; 
notification.when = visible ? System.currentTimeMillis() : hiddenTime; // align 
// left (0)/right (max) in status bar 

edición: oh lo siento me perdí una importante línea de código, de hecho, él usa un marcador de posición. Pero ahora usted tiene algún código ;-)

notification.icon = visible ? (status == Constants.STATUS_BLACK_ICON ? 
          R.drawable.ic_logo_black : R.drawable.ic_logo_white) 
          : R.drawable.ic_placeholder; 

http://code.google.com/p/quick-settings/source/browse/trunk/quick-settings/src/com/bwx/bequick/receivers/StatusBarIntegrationReceiver.java

+0

un hack inteligente en realidad. Gracias :) –

+0

¡Muchas gracias por señalar eso! – Anton

+0

@ludwigm, el código de QuickSettings ya no está disponible, ¿puede elaborar un poco más sobre la solución? No entendí completamente cómo funcionan las cosas realmente. –

0

Puede usar imágenes transparentes como icono de notificación. pero como molnarm ya se mencionó, el usuario no notificará que hay una nueva notificación

+0

Esto no es posible, aunque haya dado un ícono en una dimensión de 1 píxel. reserva lo que debería ser y lo muestra blanco. –

+0

luego usa una imagen en negro? –

+0

Simplemente no quiero reservar un área allí. No importa negro, blanco o transparente. –

0

hay algo para experimentar con Aquí. Ponga una notificación dos veces, una con el icono = 0 y otra con un ícono real. Pruébalo en un orden y luego en el orden opuesto.

Obtuve el efecto de no notificación en la barra de estado y notificación en la lista expandida cuando hice algo como esto, excepto que uno de los dos (el que tiene el ícono = 0) fue creado por Service.startForeground(). No tengo tiempo para experimentar más en este momento.

26

Esto ahora es posible en Android 4.1; la implementación de referencia de la barra de estado de Jelly Bean suprimirá los iconos para las notificaciones PRIORITY_MIN, aunque su contenido seguirá apareciendo en el panel de notificaciones.

+0

La mejor solución posible, ¡gracias por la pista! –

Cuestiones relacionadas