web-dev-qa-db-de.com

Wie setze ich ein größeres Symbol in der Firebase-App-Benachrichtigung?

Hallo, ich implementiere Push-Benachrichtigungen in Android mit Firebase. Jetzt gibt es ein kleines Symbol, das in einem Kreis angezeigt wird. Ich brauche es in größerem Format zu zeigen. Bitte sehen Sie das Bild. Und hier ist mein Code,

            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 ein großes Symbol aus diesem kleinen Symbol?

Here is the image

8
Sirilcs

Ich denke, es kann durch Überschreiben der Standardeinstellungen erfolgen.

In Ihrem Bewerbungsmanifest:

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

Verwenden Sie Ihr Symbol anstelle von @drawable/notification_icon.

Quelle

Hoffentlich hilft das

Update: Siehe auch:

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

Der icon-Parameter kann verwendet werden, um eine Zeichenfunktion in Ihrer App anzugeben. Wenn Sie R.drawable.foo verwenden möchten, übergeben Sie einfach foo.

Hier ist die Dokumentation der Parameter icon:

https://firebase.google.com/docs/cloud-messaging/http-server-ref#notification-payload-support

3
ʍѳђઽ૯ท

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

Ihre Benachrichtigung wird in onMessageReceived method of FirebaseMessagingService service abgefangen

So passen Sie Ihre Benachrichtigung an, wenn sich Ihre App im Vordergrund befindet.

Symbol aus App Drawable-Ordner einfügen

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 From API "Icon" -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());
2
Gulnaz Ghanchi

Ich habe versucht, das Gleiche zu tun. Das Überschreiben der "handleIntent" -Methode hat bei mir funktioniert. Ich denke, das Entfernen der super.handleIntent (Absicht) hat diese Arbeit gemacht. Dann können wir unsere eigene Benachrichtigung erstellen, um das große Symbol festzulegen. Sowohl Vordergrund- als auch Hintergrundfälle würden diese Methode aufrufen. Etwas wie das:

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();
    }
}
1
CCOONOK