Сбой уведомления на эмуляторе и устройстве - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь получить уведомление, которое будет выдвинуто, когда установлен флажок и нажата кнопка для обновления записи. Однако при нажатии этой кнопки происходит сбой любого эмулятора и телефонных устройств, работающих под версией ниже 24.

Я получил уведомление для работы 24 или выше, которое показывает, что реализация компоновщика уведомлений верна, но, похоже, она не работает ни на одной версии устройства ниже 24.

Построитель уведомлений:

public void showNotification(String tvSeriesName) {
        String notificationText = "You watched '" + tvSeriesName +
                "'; how about telling others what you thought of it!";

        Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
                .setContentTitle("Watched TV series")
                .setContentText("You've watched:" + tvSeriesName)
                .setSmallIcon(R.drawable.ic_tv_24dp)
                .setStyle(new NotificationCompat.BigTextStyle()
                        .bigText(notificationText))
                .setAutoCancel(true)
                .setSubText("")
                .setNumber(150)
                .setPriority(NotificationCompat.PRIORITY_DEFAULT)
                .setCategory(NotificationCompat.CATEGORY_MESSAGE)
                .build();
        mNotificationManager.notify(111, notification);

Я ожидаю, что результатом будет всплывающее уведомление с отображением Вы смотрели tvSeriesName в качестве заголовка, а затем как насчет того, чтобы сказать другим, что вы подумали , но, как я сказал, уведомление просто вылетает на любом устройстве ниже 24.

1 Ответ

0 голосов
/ 21 мая 2019

вы используете код для выполнения уведомлений на API 24 и выше, используя каналы, вы должны использовать этот код для API 23 и ниже:

 NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
 NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);

        //if you have custom view 
        RemoteViews contentView = new RemoteViews(getPackageName(), 

        mBuilder.setSmallIcon(R.drawable.ic_accessibility_white_36dp);
        // if you have custom view 
        mBuilder.setContent(contentView);

        mBuilder.setAutoCancel(true);
        mBuilder.setContentIntent(pendingIntent);
        // do not forget to mention the other info , title , text ,.....

        // unique id for NOTIFICATION_ID 
        mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
...