Отображение уведомлений Android, имеющих изображение - PullRequest
0 голосов
/ 17 апреля 2019

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

1 Ответ

1 голос
/ 17 апреля 2019

Вы должны использовать данные полезной нагрузки для отображения уведомлений, когда приложение находится в фоновом режиме. Отправьте URL-адрес изображения в виде данных и загрузите его на свой мобильный телефон перед отображением. Примерно так:

public void showImageNotification(RemoteMessage remoteMessage){
  if (remoteMessage.getData().size() > 0) {
  Map<String, String> messageData = remoteMessage.getData();
 NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, CHANNEL_ID)
            .setContentText(messageData.get("text"))
            .setContentTitle(messageData.get("title"))
            .setSmallIcon(R.drawable.localplay_logo_notification)
            .setColorized(true)    
            .setAutoCancel(true)
            .setContentIntent(pendingIntent);

    if (messageData.containsKey("image")) {
        Bitmap bitmap = getBitmapFromURL(messageData.get("image"));
        if (bitmap != null) {
            notificationBuilder.setLargeIcon(bitmap);
            notificationBuilder.setStyle(new NotificationCompat.BigPictureStyle().bigPicture(bitmap));
        }
    }
   notificationManager.notify(121, notificationBuilder.build());
}
}

public Bitmap getBitmapFromURL(String strURL) {
    try {
        URL url = new URL(strURL);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        return BitmapFactory.decodeStream(input);
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}
...