当前位置: 首页 > 知识库问答 >
问题:

使用root清除状态栏通知

淳于凯
2023-03-14

我目前正在开发一个应用程序,使用辅助服务来处理通知。尤其令人讨厌的是,第三方应用程序除了启动与通知相关的意图(并启动应用程序)之外,没有办法清除状态栏通知。

共有1个答案

越鸿才
2023-03-14

更新-请参阅下面的工作解决方案

所有这些都由NotificationManagerService处理(请参见这里:https://github.com/android/platform_frameworks_base/blob/master/services/java/com/android/server/NotificationManagerService.java)。我想您尤其会对void cancelAll(int userId)方法感兴趣。当您在status屏幕上按clear键时,实际上调用的方法是activityManager.getCurrentUser()。

您可以尝试通过反射调用NotificationManager.getService来获取它的实例(请参见NotificationManager http://androidxref.com/4.2.2_r1/xref/frameworks/base/core/java/android/app/NotificationManager.java中的隐藏getService()方法),然后尝试在返回的服务上以某种方式调用cancelAll(例如再次通过反射)。

更新

我找到了一种通过statusbar服务清除通知的更简单的方法。以下代码应该可以工作:

IBinder b = (IBinder) Class.forName("android.os.ServiceManager").getMethod("getService", new Class[] {
    String.class
}).invoke(null, new Object[] {
    "statusbar"
});

Object iFace = Class.forName("com.android.internal.statusbar.IStatusBarService$Stub").getDeclaredMethod("asInterface", new Class[] {
    IBinder.class
}).invoke(null, new Object[] {
    b
});

iFace.getClass().getMethod("onClearAllNotifications", new Class[0]).invoke(iFace, (Object[]) null);

如果您不是以根用户身份运行,这将引发SecurityException,但如果您具有根用户权限,则会成功清除通知

 类似资料:
  • 问题内容: 我正在尝试清除组件,但找不到es6语法的参考。我正在使用: 但是,这不适用于es6类语法。 我将如何获得相同的结果? 问题答案: 据我所知,React组件不会保留初始状态的副本,因此您只需要自己做即可。 请注意,该行要求您永远不要改变状态,否则您将污染并且无法进行重置。如果无法避免突变,则需要在构造函数中创建的副本。(或按照进行功能。) 最后,建议您使用而不是。

  • 我知道如何发送一个通知到状态栏,但当它第一次启动时,它接管了整个状态栏,你看不到任何其他东西,除了你的图标。有没有什么方法可以显示你的图标,而不是它接管整个状态栏几秒钟?

  • 本文向大家介绍Android使用Notification在状态栏上显示通知,包括了Android使用Notification在状态栏上显示通知的使用技巧和注意事项,需要的朋友参考一下 在使用手机时,当有未接来电或者是新短消息时,手机会给出相应的提示信息,这些提示信息通常会显示到手机屏幕的状态栏上。Android也提供了用于处理此类信息的类,他们是Notification和NotificationM

  • 我想知道是否有一种方法,使通知弹出状态栏上方,像传统的祝酒词消息,当第一次收到。默认情况下,当收到通知时,通知标签会显示在状态栏中,并暂时隐藏其他通知图标(如果有的话),直到通知标签显示完毕。然后,通知图标通常被添加到等待用户交互的图标的水平列表中。我想要最初的接收报价只是上升到状态栏之上,然后添加图标与其余的他们。

  • 我在工作中使用ProcessWindowFunction并保持StateValue。我的目标是将值保持在超过1个窗口的状态,这意味着状态不会在每个窗口的末尾被清除。我有两个问题: 我怎样才能清除状态?有没有设置触发器并用它来清除状态的选项?(当在ProcessFunction中使用状态时,我能够设置触发器以执行此清除,即使没有新事件) 有没有一种方法来构建一个单元测试来检查我的ProcessWin

  • 主要内容:本节引言:,1.设计文档部分解读,2.Notification的基本使用流程,3.设置相关的一些方法:,4.代码示例:最常见的Notification:,5.代码示例下载:,本节小结:本节引言: 本节带来的是Android中用于在状态栏显示通知信息的控件:Notification,相信大部分 学Android都对他都很熟悉,而网上很多关于Notification的使用教程都是基于2.x的,而 现在普遍的Android设备基本都在4.x以上,甚至是5.0以上的都有;他们各自的Notifi