Изображение уведомлений никогда не отображается в Android - PullRequest
0 голосов
/ 15 ноября 2018

Если предположить, что я создаю значки уведомлений, загружая изображение в формате png, используя инструмент Image Asset из Android Studio, выбирая тип в качестве уведомления, будут ли генерироваться все необходимые значки с размерами, необходимыми для спецификации значков уведомлений?если да, то не должно быть проблем с отображением этого значка в панели уведомлений, не так ли?хм это не в моем случае, а скорее показывает значок приложения по умолчанию, несмотря ни на что.Ниже мой код.Любое предположение, почему оно терпит неудачу, возможно, это просто косметическая проблема.

      NotificationManager mNotificationManager =
        (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
      if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
        NotificationChannel channel = new NotificationChannel("VEDRISE",
          "Vedic Notifications",
          NotificationManager.IMPORTANCE_DEFAULT);
        channel.setDescription("Will display daily Panchang notificatons");
        mNotificationManager.createNotificationChannel(channel);
      }
      Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
//      URL url = new //URL("https://66.media.tumblr.com/ec76b7d7e0529af6e3a437edb6c6c255/tumblr_phiur//jqePq1xp0noco1_75sq.png");
 //     Bitmap image = //BitmapFactory.decodeStream(url.openConnection().getInputStream());
      NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, "VEDRISE")
        .setSmallIcon(R.drawable.sunrise) // notification icon
  //      .setLargeIcon(image)
        .setContentTitle(title) // title for notification
        .setContentText(content)// message for notification
        .setSound(alarmSound) // set alarm sound for notification
        .setAutoCancel(true); // clear notification after click
      Intent intent = new Intent(context, this.getClass());
      PendingIntent pi = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
      mBuilder.setContentIntent(pi);
      int id = (int) ((new Date().getTime() / 1000L) % Integer.MAX_VALUE);
      Log.d("VedicHoroo", String.format("id: %d", id));
      mNotificationManager.notify( id, mBuilder.build());

Просто, чтобы дать вам некоторую область, это требование для локального уведомления, которое сработает AlarmReceiver.Приемник срабатывает по тревоге без проблем, но Уведомление не отображает изображение, которое установлено setSmallIcon, вместо этого оно отображает только значок приложения

1 Ответ

0 голосов
/ 15 ноября 2018
  Notification notification  = new Notification.Builder(this)
            .setContentTitle(title)
            .setContentText(text)
            .setSmallIcon(R.drawable.ic_notification)
            .setContentIntent(pIntent)
            .setDefaults(Notification.DEFAULT_SOUND|Notification.DEFAULT_LIGHTS|Notification.DEFAULT_VIBRATE)
            .setAutoCancel(true)
            .build();

Даже если ic_notification является прозрачным и белым. Он также должен быть определен в метаданных Манифеста, например:

         <meta-data android:name="com.google.firebase.messaging.default_notification_icon"

    android:resource="@drawable/ic_notification" />

добавить эту строку в файл manifest.xml в блоке приложения

...