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

news/2024/10/23 10:28:47/

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

根据应用包名来实现对特定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.ppmy.cn/news/1541299.html

相关文章

16. Redis异步队列

一、 安装组件 composer require hyperf/async-queue二、 配置文件 位置:config/autoload/async_queue.php如文件不存在 ,可通过 php bin/hyperf.php vendor:publish hyperf/async-queue 命令来发布。return [default => [driver => Hyperf\AsyncQueue\Driver\RedisDr…

C++ —— 实现一个日期类

目录 一. 对日期类的介绍 二. 实现日期类 1. 运算符重载 2.日期类实现代码 一. 对日期类的介绍 通过对类和对象&#xff08;这里链接是类和对象的介绍&#xff09;的学习&#xff0c;类就是一种模型一样的东西&#xff0c;是对象一种抽象的描述。所以实现日期类&#xff0…

如何做设备管理系统?六大亮点功能与八大关键指标?

在当今企业运营中&#xff0c;设备管理面临着诸多挑战。 领导不重视管理&#xff0c;使得设备管理缺乏战略层面的支持和资源投入&#xff1b;设备超负荷运转&#xff0c;不仅影响设备寿命&#xff0c;还增加了故障风险&#xff1b;管理方式陈旧&#xff0c;无法适应现代企业高…

JAVA接口,继承,和抽象类的使用

特点&#xff1a; 接口是行为的契约&#xff0c;定义了类必须实现的能力。可以用于多继承。抽象类是具有部分实现的类&#xff0c;需要通过继承来具体化某些行为。继承用于复用父类的实现&#xff0c;增强代码的扩展性和可维护性。 在Java中&#xff0c;接口、继承和抽象类都…

马拉车算法(C/C++)

#1024程序员节 | 征文# 马拉车算法&#xff08;Manachers Algorithm&#xff09;是一种用于在字符串中查找最长回文子串的线性时间复杂度算法。该算法由Udi Manacher在1980年代提出&#xff0c;因此得名。它的核心思想是利用已知的回文信息来减少不必要的比较&#xff0c;从而提…

Java | Leetcode Java题解之第502题IPO

题目&#xff1a; 题解&#xff1a; class Solution {public int findMaximizedCapital(int k, int w, int[] profits, int[] capital) {int n profits.length;int curr 0;int[][] arr new int[n][2];for (int i 0; i < n; i) {arr[i][0] capital[i];arr[i][1] profi…

Android14 和android12 在锁屏界面Keyguard输错5次密码后倒计时30秒时重启手机不显示倒计时

参考如下修改&#xff1a;Android9.0在锁屏界面Keyguard输错5次密码后倒计时30秒时重启手机不显示倒计时_android 锁屏密码输错5次-CSDN博客 android 14 修改如下&#xff1a; androidap/SYSTEM/frameworks/base$ git status Refresh index: 100% (47218/47218), done. HEAD d…

自定义组件使用v-model 实现双向数据绑定

在 Vue.js 中&#xff0c;如果你想在一个自定义组件中使用 v-model 来实现双向数据绑定&#xff0c;你需要遵循一些特定的步骤。v-model 实际上是以下两个属性的语法糖&#xff1a; 一个名为 value 的 prop&#xff0c;用于接收父组件传递的数据。一个名为 input 的事件&#…