5

Hallo, ich implementiere Push-Benachrichtigungen in Android mit Firebase. Jetzt gibt es ein kleines Symbol in einem Kreis. Ich brauche es in größerer Größe zu zeigen. Bitte sehen Sie das Bild. Und hier ist mein Code,Wie wird ein größeres Symbol in der Firebase App-Benachrichtigung festgelegt?

  android:id="@+id/relativeNotification" 

      android:layout_width="192dp" 
      android:layout_height="192dp" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true"> 

      <com.inspius.coreapp.widget.TintableImageView 
       android:layout_width="192dp" 
       android:layout_height="192dp" 
       android:layout_centerHorizontal="true" 
       android:layout_centerVertical="true" 
       android:layout_gravity="center_vertical" 
       android:contentDescription="@string/app_name" 
       android:src="@drawable/ic_launcher" 
       app:tint="@color/custom_icon_video_detail_selector" /> 

Wie setze ich großes Symbol von diesem kleinen Symbol?

Here is the image

+0

könnten Sie Ihren Code hinzufügen, um die Benachrichtigung anzuzeigen? – amorenew

Antwort

2

Ich denke, es kann durch Überschreiben der Standardeinstellungen vorgenommen werden.

in Ihrer Anwendung manifestiert:

<meta-data 
     android:name="com.google.firebase.messaging.default_notification_icon" 
     android:resource="@drawable/notification_icon" /> 

Verwenden Sie Ihr Symbol statt @drawable/notification_icon.

Source

Hoffnung, die

-Update hilft: Auch Werfen Sie einen Blick:

https://github.com/firebase/quickstart-android/issues/4#issuecomment-221344318

The icon parameter can be used to specify a drawable within your app. If you want to use R.drawable.foo, just pass foo.

Hier ist die icon Parameterdokumentation:

2

Sie können Ihre Firebase-Benachrichtigung nur anpassen, wenn sich Ihre App im Vordergrund befindet.

Die Meldung wird in gefangen werden onMessageReceived Methode FirebaseMessagingService Service

Ihre Benachrichtigung anpassen, wenn Ihre Anwendung im Vordergrund ist.

Put Icon Von App Drawable Ordner

Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.icons); 
 
NotificationCompat.Builder builder = new NotificationCompat.Builder(this) 
 
.setLargeIcon(largeIcon) 
 
.setSmallIcon(R.mipmap.ic_launcher) 
 
.setContentTitle(remoteMessage.getNotification().getTitle()) 
 
.setContentText(remoteMessage.getNotification().getBody()); 
 
NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 
 
      manager.notify(0, builder.build());

Put Icon Von API "Symbol" Tag

String name = remoteMessage.getNotification().getIcon(); 
 
URL url_value = new URL(name); 
 
Bitmap mIcon1 = BitmapFactory.decodeStream(url_value.openConnection().getInputStream()); 
 
NotificationCompat.Builder builder = new NotificationCompat.Builder(this) 
 
.setLargeIcon(mIcon1) 
 
.setSmallIcon(R.mipmap.ic_launcher) 
 
.setContentTitle(remoteMessage.getNotification().getTitle())   .setContentText(remoteMessage.getNotification().getBody()); 
 
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
 
      manager.notify(0, builder.build());

1

Ich habe versucht, t zu tun Das Gleiche. Das Überschreiben der Methode "handleIntent" funktionierte für mich. Ich denke, das Entfernen der super.handleIntent (Absicht) hat dies funktioniert. Dann können wir unsere eigene Benachrichtigung erstellen, um das große Symbol festzulegen. Sowohl der Vordergrund als auch der Hintergrund würden diese Methode aufrufen. So etwas wie dieses:

public class YourMessagingService extends FirebaseMessagingService { 

    @Override 
    public void handleIntent(Intent intent) { 
     // super.handleIntent(intent); 

     // get intent codes.... 

     NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 
     Notification notification = builder 
       .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.yourLargeIcon)) 
       .setSmallIcon(R.drawable.yourSmallIcon) 
       .setContentTitle("yourTitle") 
       .setContentText("yourText") 
       .build(); 

     NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
     notificationManager.notify(111, notification); 
    } 

    @Override 
    public void onMessageReceived(RemoteMessage remoteMessage) { 
     super.onMessageReceived(remoteMessage); 
    } 

    @Override 
    public void onDeletedMessages() { 
     super.onDeletedMessages(); 
    } 
} 
+0

Funktioniert nicht mehr: Fehler: HandleIntent (Intent) in MyFirebaseMessagingService kann nicht HandleIntent (Intent) in FirebaseMessagingService überschreiben überschrieben Methode ist endgültig – Annihil

Verwandte Themen