Android 通過系統使用NotificationListenerService 監聽各種Notification的使用方法

NotificationListenerService是通過系統調起的服務,當有應用發起通知的時候,系統會將通知的動作和信息回調給NotificationListenerService。

在繼承NotificationListenerService服務實現自己邏輯之前,需要在配置文件中添加如下代碼,獲取權限。

 <service android:name=".NotificationListener"
          android:label="@string/service_name"
          android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
     <intent-filter>
         <action android:name="android.service.notification.NotificationListenerService" />
     </intent-filter>
 </service>

這樣,在系統設置中就能找到開啓該服務的開關,以miui爲例,在設置--安全與隱私--通知讀取權限

該服務中有以下兩個抽象方法,是需要開發者在使用該服務的時候實現的。

public class NotificationCollectorService extends NotificationListenerService {

    @Override
    public void onNotificationPosted(StatusBarNotification sbn) {
        
        Log.i("zpf", "open"+"-----"+sbn.toString());
    }

    @Override
    public void onNotificationRemoved(StatusBarNotification sbn) {
        Log.i("zpf", "shut"+"-----"+sbn.toString());

    }

}
也就是說當系統發現某應用產生通知或者用戶刪除某通知,都會回調該服務的這兩個函數,函數的參數StatusBarNotification包含着該通知的具體信息。

如果是在Android Wear開發中,使用該方法捕獲手機的通知,然後同步到手錶中,就是使用該服務進行的中轉

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章