2016-08-24 2 views
8

Ich verwende FCM und ich konnte Push-Benachrichtigung erfolgreich an meine App senden. Ich möchte das benutzerdefinierte Benachrichtigungssymbol verwenden, aber es wird immer ein weißes Symbol angezeigt. Ich betreibe Lollipop.FCM Benachrichtigungssymbol wird nicht verwendet

Vom documentation sagt es

Symbol Optional, string Benachrichtigungssymbol Zeigt an. Setzt den Wert auf myicon für die auszeichnungsfähige Ressource myicon.

(Ich bin mir nicht sicher, was genau es bedeutet). Aber hier sind was ich getan habe.

  1. Ich generierte Symbole von here. Es hat Symbole mit nur weißem Text und transparentem Hintergrund. Beispiel-Screenshot Bild des Symbols ist enter image description here

  2. ich res Ordner hinzugefügt enter image description here

  3. ich meine AndroidManifest bearbeitet und habe dieses Bild android:icon="@drawable/ic_stat_set" in <Application

  4. ich auf dem Gerät das Projekt versucht, ausgeführt wird, den neuen App-Icon ic_stat_set werden als App Launcher verwendet.

  5. Von der Konsole aus sende ich eine Benachrichtigung und ich habe es erhalten, aber es ist nicht das Symbol, das ich gerade gesetzt habe.

  6. Ich habe auch versucht, über API senden. Ich habe die Benachrichtigung erhalten, aber nicht das Symbol, das ich gesetzt habe.

    curl -X POST --header "Authorization: key=SERVERKEY" --Header "Content-Type: application/json" https://fcm.googleapis.com/fcm/send -d "{\"to\":\"REGISTERATION-TOKEN-ID\",\"notification\":{\"body\":\"Yellow\" , \"icon\" : \"ic_stat_set\"} \"priority":\"10"}"

UPDATE: meine ziehbar Ikonen-Dateien sind https://drive.google.com/open?id=0B5Fi1l7EbQ_BOERUMzNuQy1OWXM

Muss ich etwas in den benutzerdefinierten Datendateien in der Konsole setzen haben? Mein Symbol? Was ich vermisse?

Dank

+0

Sie ** ** Silhouette für loliipop –

Antwort

1

ich denke, es Ihre Symbolgröße für die Statusleiste sein könnte, die aus

ist Werfen Sie einen Blick hier.

https://developer.android.com/guide/practices/ui_guidelines/icon_design_status_bar.html

Ihr App-Symbol sollte als Ihr Benachrichtigungssymbol unterschiedlich sein.

Der Symbolparameter in der Benachrichtigung gilt für die Statusleiste.

Das Symbol param im Manifest ist für den App-Icon (Shortcut)

Ich empfehle diese sample

+0

https://drive.google.com/open?id=0B5Fi1l7EbQ_BOERUMzNuQy1OWXM Hier sind die Dateien des Ordnerordners res. Was denkst du ? – cjmling

+0

@cjmling Sie benötigen 2 Symbole, eines für den Launcher und eines für die Benachrichtigung. Sie sind unterschiedlich groß. Repariere das und lies was ich dir geschickt habe, es sollte funktionieren. Funktioniert perfekt für mich mit diesen Änderungen. –

+0

Danke, dass es jetzt funktioniert. Ich habe den Artikel gelesen, konnte aber nicht finden, was falsch war. Jetzt habe ich einfach aus der Beispiel-App herausziehbare Icons/Ordner kopiert und getestet. Großartig arbeiten. :) .. möglicherweise gab es Probleme in den Größen der Symbole oder deren Anforderung, die ich nicht herausfinden konnte, was es war. – cjmling

0

Lollipop Version Verwendung Symbol ohne Hintergrund png Bild.

NotificationCompat.Builder builder = new NotificationCompat.Builder(
      this).setSmallIcon(getNotificationIcon()) 
      .setContentTitle(title) 
      .setSound(defaultSoundUri) 
      .setDefaults(Notification.DEFAULT_ALL) 
      .setPriority(NotificationCompat.PRIORITY_HIGH) 
      .setStyle(new NotificationCompat.BigTextStyle().bigText(message)) 
      .setContentText(message).setAutoCancel(true) 
      .setContentIntent(contentIntent); 
    notificationManager.notify(NOTIFICATION_ID++, builder.build()); 


private int getNotificationIcon() { 
    boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP); 
    return useWhiteIcon ? R.drawable.logo : R.drawable.ic_launcher; 
} 
+0

Der Screenshot des Symbols i oben angegebenen erforderlich werden deutlich macht sag, dass es ein Png ohne Hintergrund ist, nicht wahr? – cjmling

+0

Er verwendet FCM und Lollipop, ohne Datenfeld. Dieser Code wird niemals ausgeführt. Es ist das System, das die Benachrichtigung anzeigt. –

0

sollten Sie Silhouette Symbol verwenden. Sie müssen das Silhouettensymbol Ihres Symbols (d. h. das Benachrichtigungssymbol) erstellen. Das Problem mit weißem Hintergrund wird dadurch gelöst. Es funktionierte für mich. Versuch es bitte .

+0

und Sie sollten auch diesen Link zu studieren: -> https://blog.clevertap.com/fixing-notification-icon-for-android-lollipop-and-above/ –

+0

Ich hatte transparente Symbol wie im Blog erwähnt Link wird mitgeliefert. Problem immer noch da. : S – cjmling

+0

müssen Silhouette Symbol des Benachrichtigungssymbols (was auch immer Sie was)? du solltest es versuchen . es könnte funktionieren. es ist für mich gearbeitet. –

0

Standardmäßig Android-API nach Lolipop Statusleiste Symbolfarbe ist weiß, müssen Sie Symbol für höhere Version und ältere Version festlegen. Ohne hacken Sie dies versuchen:

int icon = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? R.drawable.your_logo_for_Kitkat : R.mipmap.your_logo_for_Lolipop_and_uper_version; 
     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(icon) 
       .setContentTitle(remoteMessage.getData().get("title")) 
       .setContentText(remoteMessage.getData().get("shortDescription")) 
       .setAutoCancel(true) 
       .setSound(defaultSoundUri) 
       .setColor(Color.RED) 
       .setStyle(notiStyle) 
       .setContentIntent(pendingIntent); 
+0

Er verwendet FCM und Lollipop, ohne Datenfeld. Dieser Code wird niemals ausgeführt. Es ist das System, das die Benachrichtigung anzeigt. –

+0

Und auch System, um Symbol oder Logo für seine Benachrichtigung zu setzen !! –

Verwandte Themen