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

Android11.0系统关闭App所有通知

通过广播接收方式,根据包名关闭App所有通知。

packages/apps/Settings$ git diff
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index d4c54c6ed8..1ce7d4136f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -106,6 +106,7 @@<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission android:name="android.permission.READ_DREAM_STATE" /><uses-permission android:name="android.permission.READ_DREAM_SUPPRESSION" />
+       <uses-permission android:name="android.permission.SET_WALLPAPER" /><application android:label="@string/settings_label"android:icon="@drawable/ic_launcher_settings"
@@ -3542,10 +3543,20 @@<action android:name="com.android.settings.action.LAUNCH_BLUETOOTH_PAIRING"/></intent-filter>/></receiver>
+               
+               <receiver
+            android:name=".MyReceiver"
+            android:enabled="true"
+            android:exported="true">
+            <intent-filter>
+                <action android:name="com.android.setWallpaper"/>
+                               <action android:name="com.android.start_devicetest" />
+                <action android:name="com.android.start_iperf" />
+                <action android:name="com.android.switch_notification" />
+            </intent-filter>
+        </receiver>diff --git a/src/com/android/settings/MyReceiver.java b/src/com/android/settings/MyReceiver.java
--- a/src/com/android/settings/MyReceiver.java
+++ b/src/com/android/settings/MyReceiver.java+else if("com.android.switch_notification".equals(action)){
+			String packageName = intent.getStringExtra("packageName");
+           boolean enable = intent.getBooleanExtra("enable",false);
+			INotificationManager mNotificationManager = +INotificationManager.Stub.asInterface(ServiceManager.getService(Context.NOTIFICATION_SERV+ICE));
+			try {
+				PackageManager mPackageManager = context.getPackageManager();
+				int uid =  +mPackageManager.getApplicationInfo(packageName,PackageManager.GET_ACTIVITIES).uid;
+				Log.i(TAG,"-----------------setNotificationsEnabledForPackage: " + +packageName + ", uid = " + uid);
+				mNotificationManager.setNotificationsEnabledForPackage(packageName, uid, +enable);
+			} catch (Exception e) {
+				Log.e(TAG, "--------------------setNotificationsEnabledForPackage: " + e);
+			}
+		}

测试方法,发送abd命令

am broadcast -a com.android.switch_notification -p com.android.settings --es packageName kr.co.kisvan.andagent --ez enable false

http://www.lryc.cn/news/498630.html

相关文章:

  • # issue 8 TCP内部原理和UDP编程
  • 力扣100题--移动零
  • Spring 邮件发送
  • 利用 360 安全卫士极速版关闭电脑开机自启动软件教程
  • 楼房销售系统
  • UML箭线图的理解和实践
  • Qt入门8——Qt文件
  • 鸿翼受邀出席2024海峡两岸档案暨缩微学术交流会
  • 支持win7系统的onnxruntime
  • 如何利用内链策略提升网站的整体权重?
  • 鸿蒙分享(二):引入zrouter路由跳转+封装
  • 【计算机网络】实验11:边界网关协议BGP
  • leetcode 1853 转换日期格式(postgresql)
  • 掌握时间,从`datetime`开始
  • 剖析千益畅行,共享旅游-卡,合规运营与技术赋能双驱下的旅游新篇
  • 集合框架(2)List
  • 【子查询】.NET开源 ORM 框架 SqlSugar 系列
  • 西安理工大学丨ChatGPT助力学术论文写作训练营-助力发表SCI一区、二区
  • go get依赖包失败,502 Bad gateway
  • 71、docker镜像制作上传/下载到阿里云
  • ZLMediaKit+wvp (ffmpeg+obs)推拉流测试
  • POSTGRESQL跟ORACLE语法区别和相同之处
  • 【知识点】图与图论入门
  • FPGA系列,文章目录
  • PAT乙级1003我要通过的做题笔记
  • 【React】React常用开发工具
  • Ubuntu20.04编译安装Carla全过程
  • Dijkstra 算法 是什么?
  • 英文输入法---华为OD机试2024年E卷
  • 理解 package.json 中版本号符号