在NotificationListenerService中过滤应用程序

时间:2014-03-19 01:20:30

标签: java android android-notifications notificationservices

我正在使用NotificationListenerService来检索通知中的信息。实际上我只能在textview中显示我在通知栏中看到的最后一个通知。我希望,如果可能的话,过滤此方法并仅显示whatsapp通知。我可以获取包名称并将其显示在LOG中,但我不知道我是否使用过滤器。这是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 个答案:

答案 0 :(得分:0)

就像这样简单:

if("com.the.package.name.you.want.to.filter".equals(sbn.getPackageName())) {
     //Do something
}

或者如果有多个,您可以将它们放在散列映射或列表中,并查看是否包 在哪里。

相关问题