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