android使用NotificationListenerService監(jiān)聽(tīng)通知欄消息
NotificationListenerService是通過(guò)系統(tǒng)調(diào)起的服務(wù),在應(yīng)用發(fā)起通知時(shí),系統(tǒng)會(huì)將通知的應(yīng)用,動(dòng)作和信息回調(diào)給NotificationListenerService。但使用之前需要引導(dǎo)用戶(hù)進(jìn)行授權(quán)。使用NotificationListenerService一般需要下面三個(gè)步驟。
注冊(cè)服務(wù)
首先需要在AndroidManifest.xml對(duì)service進(jìn)行注冊(cè)。
<service
android:name=".NotificationCollectorService"
android:label="@string/app_name"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService" />
</intent-filter>
</service>
繼承實(shí)現(xiàn)NotificationListenerService
自己實(shí)現(xiàn)一個(gè)繼承NotificationListenerService的service,在onNotificationPosted中完成自己需要的操作。
public class NotificationCollectorService extends NotificationListenerService {
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
Log.i("xiaolong", "open" + "-----" + sbn.getPackageName());
Log.i("xiaolong", "open" + "------" + sbn.getNotification().tickerText);
Log.i("xiaolong", "open" + "-----" + sbn.getNotification().extras.get("android.title"));
Log.i("xiaolong", "open" + "-----" + sbn.getNotification().extras.get("android.text"));
}
@Override
public void onNotificationRemoved(StatusBarNotification sbn) {
Log.i("xiaolong", "remove" + "-----" + sbn.getPackageName());
}
}
引導(dǎo)用戶(hù)進(jìn)行授權(quán)
由于此服務(wù)需要用戶(hù)手動(dòng)進(jìn)行授權(quán),所以使用前需要對(duì)用戶(hù)進(jìn)行引導(dǎo)設(shè)置。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String string = Settings.Secure.getString(getContentResolver(),
"enabled_notification_listeners");
if (!string.contains(NotificationCollectorService.class.getName())) {
startActivity(new Intent(
"android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"));
}
}
}
用戶(hù)授權(quán)后就可以對(duì)通知欄的所有信息進(jìn)行監(jiān)聽(tīng)了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android中通過(guò)Notification&NotificationManager實(shí)現(xiàn)消息通知
- Android編程實(shí)現(xiàn)google消息通知功能示例
- Android之開(kāi)發(fā)消息通知欄
- Android消息通知欄的實(shí)現(xiàn)方法介紹
- Android自定義Notification添加點(diǎn)擊事件
- Android中AlarmManager+Notification實(shí)現(xiàn)定時(shí)通知提醒功能
- Android 中Notification彈出通知實(shí)現(xiàn)代碼
- Android編程使用Service實(shí)現(xiàn)Notification定時(shí)發(fā)送功能示例
- Android 通知使用權(quán)(NotificationListenerService)的使用
- Android消息通知Notification常用方法(發(fā)送消息和接收消息)
相關(guān)文章
Android筆記之:在ScrollView中嵌套ListView的方法
本篇文章是對(duì)Android中在ScrollView中嵌套ListView的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
仿ios狀態(tài)欄顏色和標(biāo)題欄顏色一致的實(shí)例代碼
下面小編就為大家分享一篇仿ios狀態(tài)欄顏色和標(biāo)題欄顏色一致的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
淺談Android獲取ImageView上的圖片,和一個(gè)有可能遇到的問(wèn)題
下面小編就為大家?guī)?lái)一篇淺談Android獲取ImageView上的圖片,和一個(gè)有可能遇到的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
Android ViewPager撤消左右滑動(dòng)切換功能實(shí)現(xiàn)代碼
這篇文章主要介紹了Android ViewPager撤消左右滑動(dòng)切換功能實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-04-04
Android編程實(shí)現(xiàn)短信收發(fā)及語(yǔ)音播報(bào)提示功能示例
這篇文章主要介紹了Android編程實(shí)現(xiàn)短信收發(fā)及語(yǔ)音播報(bào)提示功能,結(jié)合實(shí)例形式分析了Android實(shí)現(xiàn)短信的接收、發(fā)送以及相應(yīng)的語(yǔ)音播報(bào)提示功能相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
React Native中Android物理back鍵按兩次返回鍵即退出應(yīng)用
這篇文章主要給大家介紹了關(guān)于React Native中Android物理back鍵按兩次返回鍵即退出應(yīng)用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10

