Я использую NotificationListenerService для получения уведомлений с помощью блога kpbird. Но я не могу извлечь значок, который можно нарисовать. Я также просматриваю это, но мне ничего не ясно. Пожалуйста помоги.
Как получить значок уведомления другого приложения?
Ответы (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
откуда ид?
- person Besnik; 17.06.2016
Здесь «id» — это идентификатор ресурса значка, который вы можете получить из объекта уведомления.
- person Saad Bin Iqbal; 20.06.2016
Например: Drawable icon = 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