Уведомление Android не будет отображаться на устройстве - PullRequest
1 голос
/ 21 июня 2019

Не могу понять, почему это уведомление не будет отображаться на устройстве.Устройство, которое я использую, работает под управлением OS9.Любая помощь будет отличной!

 @Override
public void onMessageReceived(RemoteMessage remoteMessage) {

    super.onMessageReceived(remoteMessage);
    Log.d("TestApp", "Notification Received : " + remoteMessage.getData());


    NotificationUtils.getInstance(getApplicationContext()).createChannel(NotificationUtils.DEFAULT_CHANNEL);
    NotificationCompat.Builder notification = buildBasicNotification(getApplicationContext(), remoteMessage.getFrom(), remoteMessage.getData().get("_msg"), NotificationUtils.DEFAULT_CHANNEL);
    displayNotification(notification);

}

public static NotificationCompat.Builder buildBasicNotification(Context context, String title, String msgText, String channelId) {

    NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
            .setContentTitle(title)
            .setContentText(msgText)
            .setSmallIcon(R.drawable.alert_icon)
            .setAutoCancel(false);

    return builder;
}


private void displayNotification(NotificationCompat.Builder builder) {
    NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    manager.notify(0, builder.build());
}

Вот два важных метода внутри NotificationUtils

public static NotificationUtils getInstance(Context context) {
    if (instance == null) {
        instance = new NotificationUtils(context);
    }

    return instance;
}

NotificationUtils(Context context) {
    super(context);
    this.context = context;
    notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        createAlertChannel();
        deleteChannel("Miscellaneous");
    }
}

1 Ответ

0 голосов
/ 21 июня 2019

Я наконец понял.

Ошибка была внутри этого метода.

public static NotificationCompat.Builder buildBasicNotification(Context context, String title, String msgText, String channelId) {

    NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
            .setContentTitle(title)
            .setContentText(msgText)
            .setSmallIcon(R.drawable.alert_icon)
            .setAutoCancel(false);

    return builder;
}

Убедитесь, что NotificationCompat.Builder builder = new NotificationCompat.Builder(context) принимает идентификатор канала.

Так и должно быть ... NotificationCompat.Builder builder = new NotificationCompat.Builder(context, channelId)

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