当前位置: 首页 > news >正文

Android 拦截第三方推送的通知消息或系统消息或通知栏

在需求开发中,我们需要做到各种通知的屏蔽,系统的通知,下拉状态栏通知,第三方应用通知,前后台通知。以下是收集所有相关屏蔽和拦截、取消、隐藏,过滤等消息信息的方法尝试,根据不同需要定制修改,相信总有一个是可以做到的。

根据应用包名来实现对特定APP前台通知的屏蔽。通过分析代码,找到关键位置进行修改,测试后确认功能可行。

目前没有找到比较合适的过滤方式,如有些反常的应用却不进行拦截从而正常显示,但是可以拦截掉市面上的大多数应用

方法一:frameworks/base/services/core/java/com/android/server/am/ActiveServices.java  里面的这个方法setServiceForegroundLocked(*)

 public void setServiceForegroundLocked(ComponentName className, IBinder token,
            int id, Notification notification, boolean removeNotification) {
        final int userId = UserHandle.getCallingUserId();
        final long origId = Binder.clearCallingIdentity();
    //*/
        
    if( className.getPackageName().equals("com.sohu.inputmethod.sogou") ){//应用的包名
        
        return;
    }
    //*/

       try{
        *****
       }finally {
            Binder.restoreCallingIdentity(origId);
        }
}

方法二: /SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java

private void addEntry(Entry shadeEntry) {
-        boolean isHeadsUped = shouldPeek(shadeEntry);
+        boolean isHeadsUped = false;
         if (isHeadsUped) {<


http://www.mrgr.cn/news/56437.html

相关文章:

  • 中间件之MQ-Kafka
  • 【Petri网导论学习笔记】Petri网导论入门学习(八) —— 1.6 系统的Petri网模型
  • SpringBoot实现mysql多数据源配置(Springboot+Mybatis)
  • 第8篇:网络安全基础
  • Redis 高可用:从主从到集群的全面解析
  • MedSAM微调版,自动生成 Prompt 嵌入实现图像分割!
  • 【C++、数据结构】二叉排序树(二叉查找树、二叉搜索树)(图解+完整代码)
  • C++入门知识
  • 【二刷hot100】day 4
  • Python程序设计 内置模块 随机函数
  • 【C++】— 一篇文章让你认识STL
  • Git的原理和使用(六)
  • 开源医疗管理的未来:参与码良诊所管理系统,助力智能医疗
  • 中国古代数学的杰出研究成果之一 - 杨辉三角 - 怎么用go、C++进行编程解决
  • 二叉树展开为链表
  • 代码随想录算法训练营第51天|101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104.建造最大岛屿
  • 集合框架16:HashMap的使用
  • C++编程语言:抽象机制:特殊运算符(Bjarne Stroustrup)
  • 容灾与云计算概念
  • Javascript基础面试题
  • Leetcode—1114. 按序打印【简单】(多线程)
  • http作业
  • 10.22软考初级网络管理员工重点之因特网与网络互联技术
  • 红黑树(创建 插入 测试验证)
  • 深入了解Java
  • 力扣 困难 52.N皇后II