Фильтрация приложения в 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
}

или, если их несколько, вы можете иметь их в хэш-карте или списке и посмотреть, есть ли пакет там или нет.

Другие вопросы по тегам