8

Czy mogę przesłonić domyślną ikonę powiadomienia push w Androidzie z ikony aplikacji na ikonę niestandardową?Czy mogę przesłonić domyślną ikonę powiadomienia push w Androidzie z ikony aplikacji na ikonę niestandardową?

Używam domyślnej implementacji firebase do wyświetlania powiadomień w zasobniku systemowym, gdy przychodzi powiadomienie push. Ponieważ moja ikona aplikacji jest kolorowa i ma gradient, więc gdy nadejdzie powiadomienie, Android próbował zrobić czarno-białą wersję i sprawił, że wyglądała jak białe kółko.

Czy istnieje sposób na zaktualizowanie domyślnej ikony powiadomienia do czegoś innego zamiast domyślnej ikony aplikacji?

PS: Szukam rozwiązanie, które wymaga zmiany config w oczywisty i nie chcą korzystać NotificationCompat.Builder

+0

Możesz podać 'id' dla' setSmallIcon' metody 'NotificationCompat.Builder'. – Dhruv

Odpowiedz

0
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.mipmap.custom_icon) 
       .setContentTitle("FCM Message") 
       .setContentText(messageBody) 
       .setAutoCancel(true) 
       .setSound(defaultSoundUri) 
       .setContentIntent(pendingIntent); 
0

Można zrobić tak:

int icon=R.drwable.icon; //Add your icon name here 
NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 
builder.setSmallIcon(icon); 
+0

Czy można to zrobić bez powiadomienia.Builder. Podobnie jak domyślna ikona jest pobierana z manifestu, który jest równy ikonie aplikacji. Czy można to zrobić na poziomie konfiguracji, aby zastosować dla wszystkich powiadomień. – Shashank

+0

Czy chcesz wygenerować niestandardowe powiadomienie? – Dhruv

+0

Korzysta z domyślnych powiadomień Firebase, więc nie ma dostępu do Kreatora powiadomień. – EdgarK

0

Builder klasa dla Notification obiektów. Zapewnia wygodny sposób ustawiania różnych pól powiadomienia i generowania widoków treści za pomocą szablonu układu powiadomienia o platformie. Sprawdzić oficjalnej dokumentacji here

Notification noti = new Notification.Builder(mContext) 
    .setContentTitle("New mail from " + sender.toString()) 
    .setContentText(subject) 
    .setSmallIcon(R.drawable.new_mail) 
    .setLargeIcon(aBitmap) 
    .build(); 

Tutaj można ustawić niestandardowe pola w tym ikona powiadomień.

Pozdrawiam! Szczęśliwe kodowanie:

0

Tak, możesz to zrobić. Jeśli chcesz uniknąć ikony białego kółka, musisz uczynić przezroczystą ikonę i dodać do niej kolor tła.. Tak więc użyty kolor pojawi się na przezroczystej ikonce i spowoduje wyświetlenie ikony widoczne i kolorowe. proszę sprawdzić setSmallIcon i setColor w poniższym przykładowym kodzie. Check this doc and search for transparent

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
       context) 
       .setContentIntent(contentIntent) 
       .setSmallIcon(R.drawable.transaparentIcon) 
       .setColor(context.getResources().getColor(R.color.notif_color)) 
       .setWhen(System.currentTimeMillis()) 
       .setContentTitle(context.getString(R.string.app_name)) 
       .setStyle(
         new NotificationCompat.BigTextStyle() 
           .bigText(notificationText)) 
       .setContentText(notificationText) 
       .setAutoCancel(true); 
16

można to wykorzystać w swoim manifeście według https://firebase.google.com/docs/cloud-messaging/android/receive

<!-- Set custom default icon. This is used when no icon is set for incoming notification 
    messages.See README(https://github.com/firebase/quickstart-android/tree/master/messaging#custom-default-icon) for more. --> 
    <meta-data 
     android:name="com.google.firebase.messaging.default_notification_icon" 
     android:resource="@drawable/ic_stat_ic_notification" /> 

    <!-- Set color used with incoming notification messages. 
    This is used when no color is set for the incoming notification message. See README 
    (https://github.com/firebase/quickstart-android/tree/master/messaging#custom-default-color) for more. --> 
    <meta-data 
     android:name="com.google.firebase.messaging.default_notification_color" 
     android:resource="@color/colorAccent" /> 

Nadzieję, że pomaga ludziom.

+0

Ta informacja jest niekompletna do opublikowanego linku. –

+0

@ BecarioSenior ??? Nie mam z tym żadnego błędu. Zapoznaj się z dokumentacją Firebase. – elsennov

+2

Zaskoczony, jak bardzo musiałem google znaleźć. Dziękujemy za pomoc i odniesienie –

Powiązane problemy