Значок уведомления не отображается в Android O - PullRequest
0 голосов
/ 21 апреля 2019

Когда я нажимаю уведомление, значок не отображается в Android O и в Android Lollipop, когда я нажимаю уведомление от Firebase облачных сообщений, значок показывает маленький.Я пробую это в Android P, это работает хорошо, без каких-либо проблем.

Мой код

Идентификатор канала уведомления

private static final String channelId = "445";

Полученное сообщение

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {


    // Check if message contains a notification payload.
    if (remoteMessage.getNotification() != null) {
        Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());

        String getTitle = (remoteMessage.getNotification().getTitle() != null ? remoteMessage.getNotification().getTitle() : getString(R.string.app_name));
        sendNotification(getTitle,remoteMessage.getNotification().getBody());

    }

}

Мое уведомление

private NotificationManager notificationManager;

public void sendNotification(String title,String message) {
    //create intent
    Intent intent = new Intent(this, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

    int uniqueInt = (int) (System.currentTimeMillis() & 0xfffffff);
    //pending intent
    PendingIntent pendingIntent = PendingIntent.getActivity(this, uniqueInt, intent,
            PendingIntent.FLAG_UPDATE_CURRENT);

    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    //Setting up Notification channels for android O and above.
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
      //create notification channel

        int importance = NotificationManager.IMPORTANCE_HIGH;

        assert notificationManager != null;
        NotificationChannel mChannel = notificationManager.getNotificationChannel(channelId);

        if (mChannel == null) {
            mChannel = new NotificationChannel(channelId, title, importance);
            mChannel.enableVibration(false);
            mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
            notificationManager.createNotificationChannel(mChannel);
        }
    }


    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, channelId)
            .setContentTitle(title)  // required
            .setSmallIcon(R.mipmap.ic_launcher)// required
            .setContentText(message)  // required
            .setDefaults(Notification.DEFAULT_ALL)
            .setAutoCancel(true)  //dismisses the notification on click
            .setContentIntent(pendingIntent)
            .setSound(defaultSoundUri)
            .setPriority(Notification.PRIORITY_HIGH);

    if (android.os.Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP
            || android.os.Build.VERSION.SDK_INT == Build.VERSION_CODES.M) {
        notificationBuilder.setColor(getResources().getColor(R.color.notification_color));
        notificationBuilder.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.notification_large_icon));
    }
    int notificationId = new Random().nextInt(10000);
    assert notificationManager != null;
    notificationManager.notify(notificationId /* ID of notification */, notificationBuilder.build());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...