У меня есть NotificationListenerService, который перехватывает все входящие уведомления и записывает информацию в базу данных SQLite. Единственная проблема, с которой я сталкиваюсь, это как получить значок строки состояния, также называемый маленьким значком.
notification.icon
устарел с API 23, а extras.getInt(Notification.EXTRA_SMALL_ICON)
устарел с API 26.
До Android 10 (API 29) extras.getInt("android.icon")
работал нормально, но теперь он возвращает 0 для каждого уведомления, несмотря на то, что интересно (насколько я могу судить) то же самое, что и extras.getInt(Notification.EXTRA_SMALL_ICON)
.
Я знаю, что сейчас рекомендуется использовать getSmallIcon()
, но как я могу сохранить это в базе данных? В прошлом мне удавалось получить идентификатор ресурса из вышеуказанных методов, но getSmallIcon()
возвращает объект Icon. Я знаю, что могу преобразовать это в Drawable или Bitmap, но как я могу получить идентификатор ресурса объекта, имя которого я не знаю? И тем не менее из другого приложения.
Примечание: я знаю, что есть метод getSmallIcon()
, называемый getResId()
, но для вызова требуется API 28, API выше, чем хотелось бы иметь как минимум.
Я правильно делаю? Есть ли лучший способ сделать это, что я не могу найти?