Фильтрация приложения в NotificationListenerService
Я использую NotificationListenerService
получить информацию из уведомлений. На самом деле я могу отображать в текстовом виде только последнее уведомление, которое я вижу в панели уведомлений. Я хочу, если это возможно, фильтровать этот метод и отображать только уведомления WhatsApp. Я могу получить имя пакета и отобразить его в журнале, но я не знаю, я делаю фильтр. Это часть NotificaionListenerService
public void onNotificationPosted(StatusBarNotification sbn) {
Notification mNotification=sbn.getNotification();
if (mNotification!=null){
Bundle extras = mNotification.extras;
Intent intent = new Intent(MainActivity.INTENT_ACTION_NOTIFICATION);
intent.putExtras(mNotification.extras);
sendBroadcast(intent);
TAG = "onNotificationPosted";
Log.i(TAG,"Package Name" + sbn.getPackageName());
Notification.Action[] mActions=mNotification.actions;
if (mActions!=null){
for (Notification.Action mAction:mActions){
int icon=mAction.icon;
CharSequence actionTitle=mAction.title;
PendingIntent pendingIntent=mAction.actionIntent;
}
}
}
}
в котором я вижу имя пакета приложений, которые создают уведомления. Это там, что я должен сделать фильтр? Как мне это сделать? Спасибо
1 ответ
Как просто сделать это:
if("com.the.package.name.you.want.to.filter".equals(sbn.getPackageName())) {
//Do something
}
или, если их несколько, вы можете иметь их в хэш-карте или списке и посмотреть, есть ли пакет там или нет.