【安卓学习之微信抢红包】 微信抢红包 2 - 通知服务(NotificationListenerService)

█ 【安卓学习之微信抢红包】 微信抢红包 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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值