【发布时间】:2020-02-26 02:02:56
【问题描述】:
我有一个 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(),但我怎样才能将它存储在数据库中?过去,我已经能够从上述方法中获取资源 id,但是 getSmallIcon() 返回一个 Icon 对象。我知道我可以将其转换为 Drawable 或 Bitmap,但是如何获取我不知道其名称的对象的资源 ID?不过,来自另一个应用程序。
注意:我知道 getSmallIcon() 有一个名为 getResId() 的方法,但该调用需要 API 28,这个 API 比我希望的最低要求更高。
我这样做对吗?有没有我找不到的更好的方法?
【问题讨论】:
标签: android android-notifications