如何在android中以编程方式检查是否有任何通知?

时间:2015-04-27 16:02:45

标签: android notifications

有谁知道如何在Android中以编程方式检查是否有任何通知?

我想检查通知列表中是否有当前可用的通知。

例如,如果有任何通知,则LED指示灯将亮起,如果清除通知列表,则LED指示灯将熄灭。

我只想知道允许我们检查通知列表中是否有任何通知的条件或代码。

if(条件 - 有任何通知)

//我的代码

1 个答案:

答案 0 :(得分:3)

您可以使用适用于Android 4.3及更高版本的NotificationListener API。要做到这一点,您只需创建一个扩展Service的简单NotificationListenerService

以下是一些示例代码

import android.service.notification.NotificationListenerService;
import android.service.notification.StatusBarNotification;
import android.util.Log;

public class NLService extends NotificationListenerService {

    private String TAG = this.getClass().getSimpleName();

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }

    @Override
    public void onNotificationPosted(StatusBarNotification sbn) {

        Log.i(TAG, "Notification posted");
        Log.i(TAG, "ID :" + sbn.getId() + "t" + sbn.getNotification().tickerText + "t" + sbn.getPackageName());
    }

    @Override
    public void onNotificationRemoved(StatusBarNotification sbn) {
        Log.i(TAG, "Notification Removed");
        Log.i(TAG, "ID :" + sbn.getId() + "t" + sbn.getNotification().tickerText + "t" + sbn.getPackageName());
    }

}

有完整的教程here

在此Android版本之前,您可以按照AccessibilityService所述的here进行黑客攻击