FirebaseMessagingService создание push-уведомлений - как установить значок? - PullRequest
0 голосов
/ 24 сентября 2019

Я хочу установить значок для моего push-уведомления, созданного FirebaseMessagingService.Проблема в том, что эти уведомления создаются системой внутренне (вероятно, в функции onStartCommand(), которая является окончательной, и у меня нет к ней доступа. Я не знаю, из какого источника установлен значок для этого набора уведомлений. Обычно, если вы создаете уведомлениеВы можете установить значок на NotificationManager, но этот процесс выполняется внутри Firebase. Причина, по которой я хочу изменить значок, заключается в том, что мой значок для приложения имеет прозрачный фон (его векторное изображение (.svg). Но по какой-то причине он отображаетсякак квадрат.

Есть ли способ изменить значок уведомления внутри FirebaseMessagingService?

1 Ответ

0 голосов
/ 24 сентября 2019

Используйте эту функцию для отображения уведомлений

  public void showNotificationMessage(final String title, final String message,Intent intent) {
    Random random = new Random();
    NotificationManager notifManager = null;
    if (notifManager == null) {
        notifManager = (NotificationManager)mContext.getSystemService(Context.NOTIFICATION_SERVICE);
    }
    NotificationCompat.Builder mBuilder=null;
    if (TextUtils.isEmpty(message))
        return;

    final int icon = R.mipmap.ic_launcher;
    String notificationId = String.format("%04d", random.nextInt(10000));

    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    final PendingIntent resultPendingIntent =
            PendingIntent.getActivity(
                    mContext,
                    Integer.parseInt(notificationId),
                    intent,
                    PendingIntent.FLAG_CANCEL_CURRENT
            );
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        int importance = NotificationManager.IMPORTANCE_HIGH;
        NotificationChannel mChannel = notifManager.getNotificationChannel("Test");
        if (mChannel == null) {
            mChannel = new NotificationChannel("Test", title, importance);
            mChannel.enableVibration(true);
            notifManager.createNotificationChannel(mChannel);
        }
        mBuilder = new NotificationCompat.Builder(mContext, "Test");

    }else{
        mBuilder = new NotificationCompat.Builder(mContext, "Test");
    }

    Notification notification;
    notification = mBuilder.setTicker(title)
            .setAutoCancel(true)
            .setContentTitle(title)
            .setContentIntent(resultPendingIntent)
            //.setStyle(inboxStyle)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentText(message)
            .build();
    NotificationManager notificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(Integer.parseInt(notificationId), notification);


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...