Как да получа икона за известяване на друго приложение?

Използвам NotificationListenerService за прихващане на известия с помощта на kpbird blog. Но не мога да извлека чертаемата икона. Също така преминавам през това, но нещата не са ми изяснени. Моля помогнете.


person PPB    schedule 30.09.2015    source източник


Отговори (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();  
        }
person Saad Bin Iqbal    schedule 04.01.2016
comment
откъде идва ID? - person Besnik; 17.06.2016
comment
Тук „id“ е идентификаторът на ресурс на икона, който можете да получите от обект за известяване. - person Saad Bin Iqbal; 20.06.2016
comment
Например: - Drawable икона = remotePackageContext.getResources().getDrawable(notification.icon); - person Saad Bin Iqbal; 20.06.2016
comment
Благодаря @SaadBinIqbal! важно е да се отбележи, че този код трябва да използва statusBarNotificationInstance.getNotification().icon, а не statusBarNotificationInstance.getId() - person Yoav Feuerstein; 25.01.2017
comment
Това ще получи иконата от приложението, а не иконата, показана в известието. - person Denny; 02.03.2017