2013-02-19 14 views
8

Ich versuche, eine Benachrichtigung zu verwenden, die auch die Benachrichtigungs-LED auf meinem S3 verwendet, aber aus irgendeinem Grund wird die Farbe immer blau sein (ich denke, es ist die Standardeinstellung?). Ich habe versucht, verschiedene Farben zu verwenden, aber nichts ändert sich. Andere Apps (wie WhatsApp, Gmail und Facebook haben keine Probleme mit einem anderen Farblicht).Android-Benachrichtigungs-LED verwendet nicht meine Farbe

Notification.Builder noteBuilder = new Notification.Builder(context) 
       .setAutoCancel(true) 
       .setPriority(Notification.PRIORITY_DEFAULT) 
       .setSmallIcon(R.drawable.ic_launcher) 
       .setContentTitle(ContentTitle) 
       .setContentText(ContentText) 
       .setLights(Color.YELLOW, 500, 500) 
       ; 

Intent noteIntent = new Intent(context,HoofdScherm.class); 
PendingIntent notePendingIntent = PendingIntent.getActivity(context, 0, noteIntent, PendingIntent.FLAG_CANCEL_CURRENT); 
noteBuilder.setContentIntent(notePendingIntent); 

Notification note = noteBuilder.build(); 
note.ledARGB = Color.YELLOW; 
NotificationManager mgr = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); 
mgr.notify(0,note); 
+0

trotz Farbe der LED Einstellung ist Teil der API funktioniert es wirklich sehr unterschiedlich auf den meisten Geräten und es wird nicht auf jedem Gerät funktionieren. Einige verwenden die Hauptfarbe des Launcher-Symbols der App, andere verwenden die Art der Benachrichtigung/Priorität. –

+0

Änderungen, wenn Sie keine Priorität festlegen? Da Sie die Benachrichtigung nach dem Build ändern, sollten Sie auch alle Schritte hinzufügen, um LED-Anzeigen zu erstellen. notification.ledARGB = 0xff00ff00; notification.ledOnMS = 300; notification.ledOffMS = 1000; notification.flags | = Notification.FLAG_SHOW_LIGHTS; ' –

+0

Ich habe versucht, die Priorität zu ändern (ich habe DEFAULT, HIGH verwendet und ich habe versucht, es nicht zu setzen). Es machte keinen Unterschied. Als nächstes werde ich versuchen, ein anderes Symbol zu verwenden, aber ich denke nicht, dass es einen Unterschied machen wird, weil Apps wie der Lichtmanager die Benachrichtigungsfarbe auf meinem S3 einstellen können. –

Antwort

11

Sie müssen alle sicher, dass die Standardeinstellungen machen außer Kraft gesetzt werden durch

Einstellung unter

notification.defaults = 0;

+0

das scheint nicht für mich zu arbeiten. Wo setzt du die Voreinstellung auf 0? nach 'Notification note = noteBuilder.build();' aber vor dem 'note.ledARGB = Color.YELLOW;'? Ich habe meine Priorität auf Max eingestellt und ich bin auf einem Nexus 5 testen. – toobsco42

+0

Also habe ich herausgefunden, mein Problem ist, dass mein Gerät nicht im Schlafmodus war. Sie müssen sicherstellen, dass das Benachrichtigungsfeld nicht bereits heruntergezogen wurde (d. H. Der Benutzer hat die Benachrichtigung nicht gesehen). Die LED blinkt nur in diesem Fall. http://stackoverflow.com/questions/3297835/how-can-i-enable-vibration-and-lights-use-the-android-notifications-api – toobsco42

-1

einen Blick auf Quelle. Funktionierend auf S3:

NotificationCompat.Builder mBuilder = 
       new NotificationCompat.Builder(ctx) 
         .setPriority(Notification.PRIORITY_HIGH) 
         .setSmallIcon(getNotificationIcon()) 
         .setColor(0xff493C7C) 
         .setContentTitle(ctx.getString(R.string.app_name)) 
         .setContentText(msg) 
         .setDefaults(Notification.DEFAULT_SOUND) 
         .setLights(0xff493C7C, 1000, 1000) 
         .setStyle(new NotificationCompat.BigTextStyle().bigText(styledMsg)); 
Verwandte Themen