应用未运行(FCM)时未显示通知徽标

时间:2019-05-23 19:11:47

标签: android push-notification notifications firebase-cloud-messaging sharedpreferences

因此,我已经为通知实施了FCM。 因此,我们还可以使用Firebase Cloud Messaging发送一些数据以及通知。 在这里,我创建了一个频道并将设备注册为“一般”主题。

这是我的代码:

package 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. 当应用未运行/被杀死时,驻留在我的res / drawable文件夹中的通知徽标(R.drawable.small_logo)未显示,而是显示了一个灰色圆圈。我该如何解决这个问题。
  2. 如果我通过此消息传递数据,则可以在地图中捕获它。现在成像应用程序未运行,我想将此数据保存在SharedPreferences中,那怎么可能?

1 个答案:

答案 0 :(得分:0)

当您的应用未运行时,为通知而显示的图标只能是单色的,因此应将具有透明度的图标用作形状,并且可以单独提供颜色。看起来application的{​​{1}}标签内的这些行。

AndroidManifest.xml