Android开发:以root权限以编程方式禁用“显示通知”?

2023-12-03

有没有办法以编程方式更改应用程序的详细信息(设置 -> 应用程序 -> [anApp])? 具体来说,我可以取消选中“显示通知”吗?

enter image description here

我假设你有root权限

预先感谢您的帮助


首先,这似乎取决于您对哪个版本的 Android 感兴趣。似乎 4.3 中情况发生了变化。我正在调查最新情况master分支(即 l-preview),所以沿着 AOSP 兔子洞我们发现......

在设置包中...

InstalledAppDetails.java:1299

private void setNotificationsEnabled(boolean enabled) {
    String packageName = mAppEntry.info.packageName;
    INotificationManager nm = INotificationManager.Stub.asInterface(
            ServiceManager.getService(Context.NOTIFICATION_SERVICE));
    try {
        final boolean enable = mNotificationSwitch.isChecked();
        nm.setNotificationsEnabledForPackage(packageName, mAppEntry.info.uid, enabled);
    } catch (android.os.RemoteException ex) {
        mNotificationSwitch.setChecked(!enabled); // revert
    }
}

在框架/基础...

NotificationManagerService.java:454

public void setNotificationsEnabledForPackage(String pkg, int uid, boolean enabled) {
    checkCallerIsSystem();

    Slog.v(TAG, (enabled?"en":"dis") + "abling notifications for " + pkg);

    mAppOps.setMode(AppOpsManager.OP_POST_NOTIFICATION, uid, pkg,
            enabled ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_IGNORED);

    // Now, cancel any outstanding notifications that are part of a just-disabled app
    if (ENABLE_BLOCKED_NOTIFICATIONS && !enabled) {
        cancelAllNotificationsInt(pkg, 0, 0, true, UserHandle.getUserId(uid));
    }
}

进一步在框架/基础中...

base/core/java/android/app/AppOpsManager.java

124: public static final int OP_POST_NOTIFICATION = 11;

更深入的框架/基础...

base/services/java/com/android/server/am/ActivityManagerService.java

2000: mAppOpsService = new AppOpsService(new File(systemDir, "appops.xml"));

所以如果你有root权限你可以修改/data/system/appops.xml。您可能需要通过阅读以下位置的代码来研究格式:https://github.com/android/platform_frameworks_base/blob/master/core/java/android/app/AppOpsManager.java

我在这里找到了一篇很长的文章,其中包含一些可能也有帮助的信息:

http://commonsware.com/blog/2013/07/26/app-ops-developer-faq.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android开发:以root权限以编程方式禁用“显示通知”? 的相关文章

  • admob 获取广告响应。错误代码:0 无法加载广告:0

    我在这里遵循了有关该错误的许多答案 但我的问题尚未解决 每次运行应用程序时 都不会出现广告 并且我在 Logcat 中收到以下错误消息 获取广告响应时出现问题 错误代码 0 无法加载广告 0 这是我的java代码 我错过了什么 privat
  • 使用服务时应用程序终止时音乐暂停

    我正在使用一个Service类在后台播放音乐 当我在顶部显示通知栏时 我的应用程序出现问题 当我终止该应用程序时 音乐停止约 1 秒 然后再次开始 我不知道出了什么问题 我正在关注this https www simplifiedcodin
  • Volley Json 请求不起作用 - 字符串无法转换为 JsonObject / JsonArray

    我正在开发一个 Android 应用程序并从服务器获取 JsonObject JsonArray 手动将 String 转换为 Json 可以正常工作 我最近切换到 Volley 来处理服务器请求 并且想使用JsonObjectReques
  • Android 版 YouTube 频道订阅

    我在我的应用程序中使用 YouTube API 用户可以使用其 Google 帐户登录 我希望用户能够订阅某些 YouTube 频道 这里似乎有一些关于网络的东西 https developers google com youtube su
  • Android-无法解析符号 BaseObservable

    我正在尝试在 android 中实现数据绑定示例并使用可绑定变量创建 POJO 但我收到此错误 请帮忙 我正在关注这个教程http www vogella com tutorials AndroidDatabinding article h
  • Android Volley 服务器错误

    I am posting data all strings to varchar variables in server but i am getting volley server error or badnetwork performa
  • 如何在ionic框架+ angularjs中调用函数?

    我正在使用 ionic 框架来制作 android 应用程序 我有 cordova5 1版本 first 我使用命令行创建一个项目ionic 启动 myApp 选项卡 我添加了android平台 现在我需要将java代码与javascrip
  • cordova:从 url 下载到 android 下载文件夹

    在开始之前 我尝试了以下堆栈溢出的答案 使用phonegap将文件下载到ios android下载文件夹 https stackoverflow com questions 21375624 download file to downloa
  • Android 设备上的 Facebook 分享问题

    我使用了来自的样本AndroidFacebook示例 https github com ddewaele AndroidFacebookSample它在模拟器上运行良好 但在设备上它被转移到内置的 Facebook 意图 设备上不会出现身份
  • Android:我需要关闭 Cursor 对象吗?

    在我的数据库适配器类中 我有很多这样的方法 public long getContactId final String phoneNumber throws SQLException final Cursor cur mDb rawQuer
  • android-透明RelativeLayout

    我想要制作一个具有可绘制渐变作为背景的活动 并将在其背景顶部显示 4 个面板 相对布局 现在我想让 4 个面板透明 例如 50 以便也可以看到渐变背景 我搜索了谷歌 但我发现只能通过活动而不是布局来做到这一点 如何做我想做的事 您可以创建一
  • 解析 android-21 的数据失败,不支持major.minor 版本 51.0

    安装 Android 5 0 SDK 21 后在 Eclipse 中出现以下错误 Loading data for Android 5 0 has encountered a problem Parsing Data for android
  • Android 背景 + 文本 + 按钮图标

    我想要一个图像设置为文本的背景 并在文本的左侧设置一个图标 在iPhone中非常简单 但不知道如何在Android上做到这一点 调整按钮的大小并保持图标 文本的位置和距离正确 iPhone 安卓我有这个 xml代码是
  • 用dagger 2查看依赖注入

    我有一个自定义视图扩展TextView 我应该在哪里调用我的组件来注入视图 component inject customTextView 因此 我发现我需要在自定义视图的构造函数中添加注入 在所有视图中 或者使一个调用另一个 Exampl
  • 如何在Android Studio中关联.mp3文件

    我想根据列表视图项单击播放 mp3 文件 但是根据我的代码 我运行我的应用程序 出现此窗口 因此由于缺少音频选项 我真的不知道需要选择其中哪一个为了关联我的 mp3 文件 mainList setOnItemClickListener ne
  • 还有其他地方可以获得 google-services.json 吗?

    我尝试单击GET A CONFIGURATION FILE链接自the docs https developers google com identity sign in android start integrating get conf
  • 如何将 Facebook App 的 accessToken 添加到 GraphRequest.newGraphPathRequest 方法? [复制]

    这个问题在这里已经有答案了 我复制了下面的代码Facebook Graph Api console 但是 Android Studio 无法识别accessToken 我已经创建了一个Facebook App我得到了它acesstoken
  • 使用 Android 2.x 进行实时音频流传输

    我需要在 2 x 及更高版本的设备上播放直播 This http developer android com guide appendix media formats html声明不可能在 Android 2 x 的设备上播放直播 我在这里
  • 如何从下到上连续移动图像?

    我一直在研究这个例子http obviam net index php a very basic the game loop for android http obviam net index php a very basic the ga
  • Android Mediaplayer:下载媒体文件的 setDataSource 问题

    我有一个可以录制和播放音频文件的应用程序 一些音频文件是使用 httpclient 使用简单的标准 http 下载来下载的 很长一段时间以来 它就像一种魅力 现在我突然无法播放我下载的文件 该堆栈失败 我将文件存储在 SDCard 上 并且

随机推荐

  • 右侧 singleton.getinstance() 分配需要 CodeModel 帮助

    我已经能够使用 CodeModel API 生成 99 的所需内容 但我被难住了 使用各种 directXX 方法不会将导入语句添加到生成的代码中 并且除了生成的类中的一处之外 我可以在没有 directXXX 类型的方法的情况下工作 假设
  • 如何在 C++ 中初始化 3D 数组

    如何在 C 中初始化 3d 数组 int min 1 1 1 100 100 100 this is not the way 您问题中的数组只有一个元素 因此您只需要一个值即可完全初始化它 您需要三组大括号 一组用于数组的每个维度 int
  • 如何在 msHTML 中调用脚本工作

    我正在使用 axWebBrowser 我需要编写一个脚本 该脚本在列表框的选定项目更改时起作用 在默认的 webBrowser 控件中有一个类似的方法 WebBrowserEx1 Document InvokeScript script 但
  • AngularJs 使用 $scope 变量作为 URL 嵌入 MS Word 文档

    如果我对 URL 进行硬编码 则可以嵌入我在互联网上找到的随机 MS Word Word 文档 但是 我想通过AJAX获取URL 所以我将HTML更改为 但即使是硬编码 scope我的 JS 中的变量 sco
  • javascript:函数和对象...?

    可以将函数作为对象来调用吗 例如 function Tip txt this content txt this shown false And var tip new Tip elem attr title 我的问题 你可以打电话吗new对
  • java中将非标准形式解析为标准形式

    我想编写一个Java解析器 将非标准形式 NSF 布尔函数转换为标准形式 SF NSF 示例 A B D A B C A B A B A B D 要将 NSF 转换为 SF 您必须将括号相乘 从上面的函数中可以看出 SF 是这样的 A B
  • 如何创建FindByIndexNameSessionRepository的bean

    我正在尝试创建 FindByIndexNameSessionRepository 的 Bean 我需要让所有用户会话使用它 但即使我已经定义了它 我仍然收到 bean 错误 我正在使用 Spring Boot Starter 1 5 7 E
  • PopViewController 奇怪的行为

    由于我试图拒绝一个奇怪的请求 但它不起作用 我不得不覆盖导航栏的后退按钮 我制作了一个自定义 UINavigationController 子类并破解了 BOOL navigationBar UINavigationBar navigati
  • 无法连接服务器。错误:0x8007000E

    当客户端尝试运行我的安装程序时 他在日志文件中收到此错误 Failed to connect to server Error 0x8007000E 当我在自己的机器上测试时 安装程 序运行良好 这是完整的日志文件 Verbose loggi
  • 如何在 Python 中将 URL 字符串拆分为单独的部分?

    我决定今晚学习 Python 我很了解C 用它写了一个操作系统 所以我不是编程新手 所以Python中的一切看起来都很简单 但我不知道如何解决这个问题 假设我有这个地址 http example com random folder path
  • 如何处理浮动元素?

    如果父元素中有浮动元素 则它们的父元素会失去其形状或没有高度 如何处理这个问题呢 Thanks 解决方案是使用clearfix class
  • 通过linux终端向另一个进程的stdin发送数据

    我一直在尝试将数据发送到正在运行的进程的标准输入 这是我所做的 在终端中 我启动了一个 C 程序 它只读取字符串并打印它 代码摘录 while true cin gt gt s cout lt lt I ve just read lt lt
  • PostgreSQL:命令已在进行中

    我的异步函数尝试从表中选择单个记录 该函数接受从另一个函数传递的一些参数 因此 某些进程 至少 6 个 可以同时使用它 我经常收到消息错误 命令已经在进行中 我知道问题隐藏在阅读器中 因为当另一个进程尝试访问它时 阅读器正忙 让我发布下面的
  • Pandas:查找具有第二高值的行的索引

    我试图在执行 groupby 之后获取具有第二高值的行的索引 但我没有得到正确的结果 df pd DataFrame Sp a b c d e f Mt s1 s1 s2 s2 s2 s3 Value 1 2 3 4 5 6 count 3
  • mysqli 中的 $GLOBALS["___mysqli_ston"] 是什么

    我第一次尝试使用 mysqli 我有一个问题 什么是 GLOBALS mysqli ston 你能告诉我吗 谷歌搜索时我没有得到任何直接答案 MySQLConverter 假定此全局变量设置为等于您的数据库连接对象 如果转换器找到 mysq
  • 捕获 xsl 结果文档的输出流

    我需要一种方法来干扰写入 xsl 结果文档 以避免将它们写入文件系统 现在我的模板正在写入临时目录 然后我压缩该目录 我想在不写入文件系统的情况下执行此操作 我正在使用 saxon 处理器 首选仅使用标准 java 库的解决方案 任何建议表
  • 如何在 Eclipse 中使用点(DOTALL)匹配多行查找正则表达式

    我想转换这个 def getEmployeeReminders employeeId Int page Option Int pageSize Option Int js callback Option String Action val
  • Pine 脚本 (TradingView) - 如何将止损移至获利水平

    TradingView 上有一个 Pine 脚本代码 其中有 2 个止盈水平和 2 个止损水平 交易视图网 当实现第一个止盈时 一半仓位被平仓 第一个止损移至入场水平 盈亏平衡 您是否有任何想法如何通过以下逻辑设置 3 个止盈水平 当达到
  • 函数替换子字符串返回错误答案

    我有一个程序替换字符串中的子字符串 我们的想法是找到string to be replaced in original string then realloc the new string并将其连接到replace by细绳 它适用于某些情
  • Android开发:以root权限以编程方式禁用“显示通知”?

    有没有办法以编程方式更改应用程序的详细信息 设置 gt 应用程序 gt anApp 具体来说 我可以取消选中 显示通知 吗 我假设你有root权限 预先感谢您的帮助 首先 这似乎取决于您对哪个版本的 Android 感兴趣 似乎 4 3 中