█ 【安卓学习之微信抢红包】 微信抢红包 2 - 通知服务(NotificationListenerService)
█ 相关文章:
● 【安卓学习之微信抢红包】 微信抢红包 1 - 知识点归纳
● 【安卓学习之微信抢红包】 微信抢红包 2 - 通知服务(NotificationListenerService)
● 【安卓学习之微信抢红包】 微信抢红包 3 - 辅助服务(AccessibilityService)
● 【安卓学习之微信抢红包】 微信抢红包 4 - APP自动更新(补充)
● 【安卓学习之微信抢红包】 微信抢红包 5 - 工具Android Monitor
█ 读前说明:
● 本文通过学习别人写demo,学习相关知识,如果涉及侵权请告知
● 本文只简单罗列相关的代码实现过程
● 涉及到的逻辑以及说明也只是简单介绍,主要当做笔记,了解过程而已
█ NotificationListenerService:
● 作用:监听系统通知栏的功能
● 条件:开启APP的【通知使用权】
● 使用:
- 在【AndroidManifest.xml】声明此服务类
- 新建一个继承NotificationListenerService的服务类
█ 通知栏使用权限界面的跳转:
● 打开【通知栏】(即【通知和状态栏】)的设置
- 打开[微信抢红包]通知权限
Intent intent = new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS);
startActivity(intent);
● 【通知和状态栏】界面中有该选项,需要在【AndroidManifest.xml】文件中绑定对应的服务
- 微信抢红包-android.permission.BIND_NOTIFICATION_LISTENER_SERVICE
<service android:name="service.QiangHongBaoNotificationService"
android:label="微信123"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService" />
</intent-filter>
</service>
● 总结:(摘自【相关资料2】)
AndroidManifest.xml中声明此服务类, 并必须声明 BIND_NOTIFICATION _LISTENER_SERVICE 许可和意图过滤器android.service. notification. NotificationListenerService,还有我们在系统设置中通知使用权列表中看到的label标签【微信123】
█ 通知栏服务代码的实现:
public class NotificationService extends NotificationListenerService {
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onListenerConnected() {
// 已经连接上了
}
@Override
public void onNotificationPosted(final StatusBarNotification sbn) {
//接收通知栏事件
sbn.getId(); // 返回通知对应的id
sbn.getNotification(); // 返回通知对象
sbn.getPackageName(); // 返回通知对应的包名
sbn.getNotification(); // 返回通知对象
String title = sbn.getNotification().tickerText.toString();// 通知栏的消息内容
// 发送广播,将消息传出去,或者 直接设置静态函数传递消息
// 在【辅助功能/无障碍】中处理
QiangHongBaoService.notificationEvent(title,sbn);
}
@Override
public void onNotificationRemoved(StatusBarNotification sbn) {
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
当通知栏含有大小标题时,tickerText中将用:进行分割
█ 相关资料:
● 1.2017-07-25 Android Service两种启动方式详解(总结版) - imxiangzi - CSDN博客
● 2.2017-03-23 通知使用权(NotificationListenerService)的使用 - 子云心 - CSDN博客
转载请注明出处:
https://blog.csdn.net/ljb568838953/article/details/82378489