Как показать уведомление BigPictureStyle в Android, когда приложение находится в фоновом режиме при использовании уведомления Firebase? - PullRequest
0 голосов
/ 23 апреля 2019

Я использую уведомление Firebase.Когда приложение находится на переднем плане, вызывается onMessageReceived и уведомление отображается с изображением (уведомление BigPictureStyle).но когда приложение находится в состоянии ожидания, onMessageReceived не вызывается, и вызывается базовое уведомление с заголовком и описанием.

Для обработки onMessageReceived, не вызываемой, когда приложение находится в фоновом режиме, я реализовал логику перенаправления в активности средства запуска (через намерениеbundle).

Но изображение все еще не видно.

@Override
 public void onMessageReceived(RemoteMessage remoteMessage) {
        sendNotification(remoteMessage);
}
 private void sendNotification(RemoteMessage remoteMessage) {
        Intent intent;
        if (remoteMessage != null) {
            RemoteMessage.Notification notification = remoteMessage.getNotification();

            intent = new Intent(this, MainActivity.class);
            intent.putExtra("url", url);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            PendingIntent pendingIntent = PendingIntent.getActivity(this, REQUEST_CODE, intent,
                    PendingIntent.FLAG_CANCEL_CURRENT);

            NotificationCompat.BigPictureStyle BigPicstyle = new NotificationCompat.BigPictureStyle()
                    .bigPicture(bitmap_image)
                    .setBigContentTitle(title)
                    .setSummaryText(body)
                    .bigLargeIcon(null);

            NotificationCompat.Builder notificationBuilder = null;


            notificationBuilder = new NotificationCompat.Builder(this, CHANNEL_ID);
            if (bitmap_image != null) {
                notificationBuilder.setStyle(BigPicstyle);
                notificationBuilder.setLargeIcon(bitmap_image);
            } else {
                notificationBuilder.setStyle(BigTextstyle);
                notificationBuilder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));
            }

            //region setting notification


            notificationBuilder
                   .setContentTitle(title)
                    .setContentText(body)
                    .setPriority(Notification.PRIORITY_HIGH)
                    .setWhen(System.currentTimeMillis())
                    .setVisibility(getNotificationId())
                    .setChannelId(CHANNEL_ID)
                    .setNumber(1)
                    .setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL)
                    .setContentIntent(pendingIntent);
            //endregion

            getManager().notify(getNotificationId(), notificationBuilder.build());

        }


    }

Я получаю базовое уведомление с заголовком и телом, когда приложение находится в состоянии «завершено».как я могу получить изображение, когда приложение находится в отключенном состоянии ???

1 Ответ

0 голосов
/ 23 апреля 2019

Используйте изображение фиксированного размера, которое вы хотите показать в уведомлении как показано ниже (изображения не должны быть в нескольких размерах)

         setLargeIcon(largeIcon);  // access it from drawable folder.

Не используйте изображение здесь из папки mipmap. это дает соответствующее разрешение изображения. Сделайте то же самое в файле описания ...

<meta-data
    android:name="com.google.firebase.messaging.default_notification_icon"
    android:resource="@drawable/notification_icon_of_fixed_sized" />
<meta-data 
    android:name="com.google.firebase.messaging.default_notification_color"
    android:resource="@color/google_blue" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...