Android Notification ничего не делает - PullRequest
1 голос
/ 07 октября 2019

простите мой плохой английский. Я хочу уведомление о нажатии кнопки, нажатие кнопки работает нормально, потому что тост "ЕГО О'КЕЙ!"показывает, но ничего не делать. Я только что нашел предупреждение в logcat, когда нажимаю кнопку:

W/libEGL: EGLNativeWindowType 0x75cc082010 disconnect failed

Я знаю, что должен использовать CHANNEL_ID, но это не лучше. Тост показывает ...

public void sendNotification() {
    Toast.makeText(this, "ITS OKAY!", Toast.LENGTH_SHORT).show();
    NotificationCompat.Builder mBuilder =
            new NotificationCompat.Builder(this, "CHANNEL_ID")
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setContentTitle("It is my notification's Title!")
                    .setContentText("Notification Body!");
    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(1, mBuilder.build());
}

Я хочу уведомление, но мой код ничего не делает, только тост! (

1 Ответ

3 голосов
/ 07 октября 2019

Как уже было сказано, вы должны создать канал уведомлений для версий, более новых, чем Android O. Как сказано в документации, вы можете сделать это следующим образом:

 createNotificationChannel();
 Notification notification = new NotificationCompat.Builder(this, "channelID")
              .setSmallIcon(R.drawable.notification_icon)
              .setContentTitle("My notification")
              .setContentText("Much longer text that cannot fit one line...")
              .build();


 private void createNotificationChannel() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        int importance = NotificationManager.IMPORTANCE_DEFAULT;
        NotificationChannel serviceChannel = new NotificationChannel(
                "channelID",
                "Channel Name",
                importance
        );

        NotificationManager manager = getSystemService(NotificationManager.class);
        manager.createNotificationChannel(serviceChannel);
    }
}
...