StatusBarNotification не работает в Андроид 10
Я использую код для получения уведомлений от яндекснавигатора
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
pack_notif = sbn.getPackageName();
if (pack_notif.equals("ru.yandex.yandexnavi")) {
if (sbn.getNotification().tickerText != null) {
pack_ticker = sbn.getNotification().tickerText.toString();
}
Bundle extras = sbn.getNotification().extras;
title_notif = extras.getString("android.title");
try {
text_notif = extras.getCharSequence("android.text").toString();
} catch (NullPointerException e) {
text_notif = "";
}
try {
id1 = extras.getInt(Notification.EXTRA_SMALL_ICON);
} catch (ClassCastException e) {
}
}
}
И он работает в Андроид 9, я получаю идентификатор изображения из уведомления в переменной id1, и работаю дальше с ним. Но в Андроид 10 я получаю id1 равным 0, и не могу получить изображение из уведомления. Хотя я уведомление вижу, и другие данные получаю. В чём тут загвоздка? Google поменял видать что-то опять.
Эти запросы тоже не работают
id2 = extras.getInt(Notification.EXTRA_LARGE_ICON);
id3 = extras.getInt(Notification.EXTRA_PICTURE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
_icon = sbn.getNotification().getLargeIcon();
}
Ответы (1 шт):
Автор решения: Arty Morris
→ Ссылка
Нашёл решение
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
_icon = sbn.getNotification().getSmallIcon();
}