2012-04-27 29 views
6

Estoy usando una notificación para informar al usuario ahora que el servicio aún se está ejecutando. Ahora me gustaría usar la luz de notificación para recordarle al usuario. (porque es elegante)Notificación de Android no funciona

La notificación funciona bien, pero la luz de notificación no hace nada. Otras aplicaciones funcionan bien con la luz de notificación, (Gtalk, Facebook)

es más o menos el código de ejemplo para las notificaciones con la adición de estas banderas:

notification.ledARGB = 0xff00ff00; 
notification.ledOnMS = 100; 
notification.ledOffMS = 100; 
notification.flags |= Notification.FLAG_SHOW_LIGHTS; 

notification.flags |= Notification.FLAG_NO_CLEAR + Notification.FLAG_ONGOING_EVENT; 
mNotificationManager.notify(NOTIFICATION_ID, notification); 

y

notification.defaults |= Notification.DEFAULT_LIGHTS; 

lugar doesn tampoco funciona

estoy de depuración de un Galaxy Nexus con Android 4.0, pero el objetivo de la aplicación es Android 2.3.3

EDIT: Podría ser esto un problema de permiso? ¿Si sí, cual? Revisé todo y no encontré permiso de coincidencia para la luz de notificación.

+0

obligatorio "¿está seguro de que tiene permisos correctos para las luces de notificación" – antlersoft

+0

buena pregunta, eran ¿los recibo? – trichner

+0

En el archivo AndroidManifes.xml –

Respuesta

2

Creo que hay un error con el operador +, necesita la O:

notification.flags |= Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT; 

EDIT: y si está utilizando banderas, creo que la correcta debería ser:

notification.flags |= Notification.FLAG_SHOW_LIGHTS 
+0

¡No es un error, es una característica! Esos son Bits para establecer, el plus funciona bien. Como cada bandera es un poco más, nunca recibirás una transferencia. Pero el quirófano funcionaría bien. FLAG_SHOW_LIGHTS está configurado, como puede ver en el bloque de código superior, de acuerdo con la documentación, no es necesario si usa el indicador DEFAULT_LIGHTS. – trichner

+0

Esta respuesta me lo arregló ... gracias nax –

2

En los dispositivos de gelatina de jalea, el led solo funciona si la prioridad de notificación está configurada como máxima o predeterminada, por favor verifique nuevamente. El siguiente fragmento de código funciona bien para mí en los dispositivos jb.

notification.setLights(0xFF0000FF,100,3000); 
notification.setPriority(Notification.PRIORITY_DEFAULT); 

Aquí estoy mostrando el color azul llevó para la notificación de que se mantendrá durante 100 ms y apagado durante 3000 ms hasta el usuario desbloquea el dispositivo.

Y comprobar si está utilizando la clase NotificationCompat (compatibilidad) que ignorar método setDefaults y utilizar SetLight, SetSound, Setvibration, etc

Cuestiones relacionadas