Логотип уведомления не отображается, когда приложение не запущено (FCM) - PullRequest
0 голосов
/ 23 мая 2019

Итак, я внедрил FCM для уведомлений. Таким образом, мы также можем отправить некоторые данные вместе с уведомлением, используя Firebase Cloud Messaging. Здесь я создал канал и зарегистрировал устройство в «общей» теме.

Вот мой код:

пакет com.femindharamshi.fcmtrial;

import android.app.NotificationManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationManagerCompat;
import android.util.Log;

import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;

import java.util.Map;

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);
        Map m = remoteMessage.getData();
        showNotification(remoteMessage.getNotification().getTitle(), remoteMessage.getNotification().getBody(), m);

        Class me = remoteMessage.getClass();
        Log.d("MessageDateRecieved", ""+me.toString());

    }

    public void showNotification(String title, String message, Map m) {

        NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "MyNotifications")
                .setContentTitle(title)
                .setSmallIcon(R.drawable.small_logo)
                .setAutoCancel(true)
                .setContentText(message);

        NotificationManagerCompat manager = NotificationManagerCompat.from(this);
        manager.notify(999, builder.build());

    }
}

Теперь у меня следующие 2 вопроса:

  1. Когда приложение не запущено / не уничтожено, логотип уведомления (R.drawable.small_logo), находящийся в моей папке res / drawable, не отображается, а отображается серый круг. Как мне решить эту проблему.
  2. Если я передаю данные через это сообщение, я могу записать их на карту. Теперь отображение приложения не запущено, и я хочу сохранить эти данные в SharedPreferences, тогда как это возможно?

1 Ответ

0 голосов
/ 23 мая 2019

Значок, отображаемый для уведомления, когда ваше приложение не запущено, может быть только монохромным, поэтому значок с прозрачностью следует использовать как форму, а цвет для него можно предоставить отдельно.Похоже, эти строки внутри тега application в AndroidManifest.xml.

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