如何获取其他应用的通知图标?
Posted
技术标签:
【中文标题】如何获取其他应用的通知图标?【英文标题】:How to get notification icon of other app? 【发布时间】:2015-09-30 06:29:38 【问题描述】:在kpbird blog 的帮助下,我正在使用 NotificationListenerService 来捕获通知。但我无法提取图标的可绘制对象。我也正在经历this,但我还不清楚。请帮忙。
【问题讨论】:
【参考方案1】:要获取其他应用程序图标,只需获取该应用程序的包名称并使用以下代码。您将从通知实例中获取包名。
String pack= "com.whatsapp" // ex. for whatsapp;
Context remotePackageContext = null;
Bitmap bmp = null;
try
remotePackageContext = getApplicationContext().createPackageContext(pack, 0);
Drawable icon = remotePackageContext.getResources().getDrawable(id);
if(icon !=null)
bmp = ((BitmapDrawable) icon).getBitmap();
catch (Exception e)
e.printStackTrace();
【讨论】:
id 来自哪里? 这里的'id'是你可以从通知对象中获取的图标资源id。 例如:- Drawable icon = remotePackageContext.getResources().getDrawable(notification.icon); 感谢@SaadBinIqbal!需要注意的是,这段代码应该使用statusBarNotificationInstance.getNotification().icon
而不是statusBarNotificationInstance.getId()
这将从应用程序中获取图标,而不是通知中显示的图标。以上是关于如何获取其他应用的通知图标?的主要内容,如果未能解决你的问题,请参考以下文章