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开发中,使用该方法捕获手机的通知,然后同步到手表中,就是使用该服务进行的中转

时间: 2024-08-29 07:21:38

Android 通过系统使用NotificationListenerService 监听各种Notification的用法的相关文章

Android 通过系统使用NotificationListenerService 监听各种Notification的使用方法

NotificationListenerService是通过系统调起的服务,当有应用发起通知的时候,系统会将通知的动作和信息回调给NotificationListenerService. 在继承NotificationListenerService服务实现自己逻辑之前,需要在配置文件中添加如下代码,获取权限. <service android:name=".NotificationListener" android:label="@string/service_name

Android开发之使用广播监听网络状态变化

我们经常需要判断网络状态的变化,如有无网络,所以需要监听网络状态的变化,比如网络断开,网络连接给予友好提示.如何监听网络状态的变化呢,最近工作中需要用到这个,于是就用广播机制来实现了网络状态的监听. 使用广播机制来监听网络状态主要涉及到以下几点: 1.需要自己编写个网络广播接收器,该接收器继承BroadcastReceiver类,用来接收系统发出的广播.比如我自己写了个NetStatusReceiver广播接收器.代码如下: package com.log.system; import andr

Android NDK开发(八)——应用监听自身卸载,弹出用户反馈调查

转载请注明出处:http://blog.csdn.net/allen315410/article/details/42521251 监听卸载情景和原理分析 1,情景分析 在上上篇博客中我写了一下NDK开发实践项目,使用开源的LAME库转码MP3,作为前面几篇基础博客的加深理解使用的,但是这样的项目用处不大,除了练练NDK功底.这篇博客,我将讲述一下一个各大应用中很常见的一个功能,同样也是基于JNI开发的Android应用小Demo,看完这个之后,不仅可以加深对NDK开发的理解,而且该Demo也可

Android项目:输入法软键盘显示/隐藏的监听和控制,InputMethodManager用法研究

在项目开发中,用到编辑框的地方经常涉及到要监听或者控制软键盘的显示/隐藏状态.本以为这是很容易解决的一个小问题,没想到当初碰到这个问题才明白还得花点小心思才能整好.现将针对软键盘的显示/隐藏状态的监听/监控方法做一些总结,以备后用. 一.点击空白处隐藏软键盘 这是具有编辑框焦点的页面对输入法软键盘状态监听的一般需求和解决方法. 首先获得InputMethodManager:        InputMethodManager manager = (InputMethodManager) getS

Android开机和关机广播监听

Android开机.关机广播监听 一.开机广播的监听 1.在AndroidManifest.xml文件注册接收开机广播 <receiver android:name=".XXXBroadcastReceiver" > <intent-filter> <!-- 开机广播 --> <action android:name="android.intent.action.BOOT_COMPLETED" /> </inte

android的Home键的监听封装工具类(一)

android的Home键的监听封装: 1 package com.gzcivil.utils; 2 3 import android.content.BroadcastReceiver; 4 import android.content.Context; 5 import android.content.Intent; 6 import android.content.IntentFilter; 7 8 /** 9 * Home键监听封装 10 * 11 */ 12 public class

(转)[Android实例] 关于使用ContentObserver监听不到删除短信会话的解决方案

最近做通讯录的项目,需要实时监听短信的删除,就用到了观察者ContentObserver,怪异的事情就此发生,当我删除一条短信的时候,可以监听到,但是,当我删除整条短信的时候,就无法监听到,查了很多资料,都没有一个好的解决方案,顺便吐糟一下:大家来eoe发问题,问题解决了,也不说把解决的方法给大家分享一下... OK,先看源码吧com.android.providers.telephony.MmsSmsProvider这个类的删除操作源码 @Override    public int dele

Android NDK开发(九)——应用监听自身卸载升级版,使用Inotify监听安装目录

转载请注明出处:http://blog.csdn.net/allen315410/article/details/42555415 在上一篇博客中,我们讲了一个小小的案例,用NDK监听应用程序自身卸载,并且打开内置浏览器加载用户调用页面.关于监听应用程序自身卸载的原理和实现方案可以在上篇博客中找到,地址是:http://blog.csdn.net/allen315410/article/details/42521251,这里就不再复述了. 值得注意的是,在上篇博客中我也已经引述了一个案例中存在的

Android数据库内容变化的监听

首先介绍内容监测的基本模式 基于uri的内容监测的基本模式被android.content.ContentResolver实现. 它为基于Uri的内容监测的提供了一个平台.(其实如果有必要,我们可以自己实现一个)ContentResolver为此提供了三个方法:注册监听器到某个uripublic final void registerContentObserver (Uri uri, boolean notifyForDescendents, ContentObserver observer)