【问题标题】:How to get notification icon of other app?如何获取其他应用的通知图标?
【发布时间】:2015-09-30 06:29:38
【问题描述】:

kpbird blog 的帮助下,我正在使用 NotificationListenerService 来捕获通知。但我无法提取图标的可绘制对象。我也正在经历this,但我还不清楚。请帮忙。

【问题讨论】:

    标签: android android-notifications android-notification-bar


    【解决方案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()
    • 这将从应用程序中获取图标,而不是通知中显示的图标。
    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多