onAccessibilityEvent(AccessibilityEvent event) 不拦截通知

2023-12-22

在我的应用程序中,我必须捕获新传入的电子邮件通知并在屏幕上播放描述该事件的视频。 我正在使用onAccessibilityEvent(AccessibilityEvent event)收听生成的通知。 我还使用以下代码来初始化我的 AccessibilityService:

    AccessibilityServiceInfo localAccessibilityServiceInfo = new AccessibilityServiceInfo();
    localAccessibilityServiceInfo.eventTypes = AccessibilityEvent.TYPES_ALL_MASK; // AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
    localAccessibilityServiceInfo.notificationTimeout = EVENT_NOTIFICATION_TIMEOUT_MILLIS;
    localAccessibilityServiceInfo.feedbackType = AccessibilityServiceInfo.FEEDBACK_AUDIBLE; // AccessibilityServiceInfo.FEEDBACK_VISUAL;
    localAccessibilityServiceInfo.flags &= AccessibilityServiceInfo.DEFAULT;
    setServiceInfo(localAccessibilityServiceInfo);

但事件从未到来。 怎么解决呢? 谢谢, 埃亚尔。


我有类似的情况,这在我的应用程序中有效:

import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.util.Log;
import android.view.accessibility.AccessibilityEvent;
import android.widget.Toast;

public class NotificationAccessibilityService extends AccessibilityService
{
    public static final String TAG = "volumeMaster";

    @Override
    public void onAccessibilityEvent(AccessibilityEvent event)
    {
        Log.v(TAG, "***** onAccessibilityEvent");
        Toast.makeText(getApplicationContext(), "Got event from: " + event.getPackageName(), Toast.LENGTH_LONG).show();
    }

    @Override
    public void onInterrupt()
    {
        Log.v(TAG, "***** onInterrupt");
    }

    @Override
    public void onServiceConnected()
    {
        Log.v(TAG, "***** onServiceConnected");

        AccessibilityServiceInfo info = new AccessibilityServiceInfo();
        info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
        info.notificationTimeout = 100;
        info.feedbackType = AccessibilityEvent.TYPES_ALL_MASK;
        setServiceInfo(info);

    }
}

在我的清单中:

<service android:name=".accessibility.NotificationAccessibilityService" android:label="@string/app_name" android:enabled="true" android:exported="false">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService" />
        </intent-filter>

</service>

我的解决方案的部分内容来自:StackOverflow 的辅助功能服务 https://stackoverflow.com/questions/9675611/android-accessibility-service

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

onAccessibilityEvent(AccessibilityEvent event) 不拦截通知 的相关文章

  • 如何快速自动发送FCM或APNS消息?

    我正在开发一项后端服务 通过 FCM 或 APNS 向移动应用程序发送推送通知 我想创建一个可以在一分钟内运行的自动化测试 并验证服务器是否可以成功发送通知 请注意 我不一定需要检查通知是否已送达 只需检查 FCM 或 APNS 是否已成功
  • Android Studio 3.0 Canary 9 - 无法解析包

    我在 Android Studio 3 0 Canary 9 中遇到几个错误 这些错误是 无法解析 android 软件包 下面列出了一些错误 我刚刚安装了 SDK 的所有额外软件包 但仍然收到 gradle 构建错误 Error 82 1
  • 使用workmanager时Firestore脱机持久性错误

    我正在使用一个WorkManger定期从我的中检索信息Firestore当应用程序处于后台和前台时的数据库 此信息用于根据状态更新 UI 因此不同的状态会添加或删除 UI 的不同部分 第一次运行时效果很好 但是 一旦应用程序处于后台并且Wo
  • 在 Android Studio 中,为什么我必须在模拟器中单击“运行应用程序”两次才能启动应用程序?

    在 Android Studio 中 当我按播放按钮在 Android 模拟器上安装并运行应用程序时 大约 5 10 秒后 我在屏幕底部收到一条消息 显示 安装成功 但应用程序实际上并未运行在模拟器上 我必须再次按下播放按钮 这是非常令人沮
  • 在 ViewPager Fragments 中使用 Master/Detail 模板(下载链接)

    工作代码 https github com lukeallison ViewPagerMasterDetail https github com lukeallison ViewPagerMasterDetail Android 主 详细流
  • 找不到 com.google.firebase:firebase-core:9.0.0 [重复]

    这个问题在这里已经有答案了 在遵循有些不一致的指示之后here https firebase google com docs admob android quick start name your project and here http
  • 无法获取log.d或输出Robolectrict + gradle

    有没有人能够将 System out 或 Log d 跟踪从 robolectric 测试输出到 gradle 控制台 我在用Robolectric Gradle 测试插件 https github com robolectric robo
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • 如何以编程方式检查 AndroidManifest.xml 中是否声明了服务?

    我正在编写一个库 该库提供了一项服务 其他开发人员可以通过将其包含在他们的项目中来使用该服务 因此 我无法控制 AndroidManifest xml 我在文档中解释了要做什么 但一个常见的问题是人们忽略了将适当的 标记添加到其清单中 或者
  • Android 模拟器插件无法初始化后端 EGL 显示

    我在 Cloudbees 上设置了 Jenkins 作业 并且可以在那里成功签出并编译我的 Android 项目 现在我想在 android 模拟器中运行一些 JUnit 测试并添加 Android 模拟器插件 我将 显示模拟器窗口 选项设
  • Android 中 Kotlin 协程的正确使用方式

    我正在尝试使用异步更新适配器内的列表 我可以看到有太多的样板 这是使用 Kotlin 协程的正确方法吗 这个可以进一步优化吗 fun loadListOfMediaInAsync async CommonPool try Long runn
  • 是否有 ADB 命令来检查媒体是否正在播放

    我想使用 ADB 命令检查根植于终端的外部设备中是否正在播放音频 视频 我无法找到任何 ADB 命令 如果有 我尝试过 adb shell dumpsys media player 我想要一个命令来指定视频是否正在运行 您可以使用以下命令查
  • 在gradle插件中获取应用程序变体的包名称

    我正在构建一个 gradle 插件 为每个应用程序变体添加一个新任务 此新任务需要应用程序变体的包名称 这是我当前的代码 它停止使用最新版本的 android gradle 插件 private String getPackageName
  • 你的CPU不支持NX

    我刚刚下载了 android studio 但是我遇到了一个问题 当我运行它时 它说你的 cpu 不支持 NX 我应该怎么办 NX 或实际上是 NX 处理器位 是处理器的一项功能 有助于保护您的 PC 免受恶意软件的攻击 当此功能未启用并且
  • 如何发布Android .aar源以使Android Studio自动找到它们?

    我正在将库发布到内部 Sonatype Nexus 存储库 Android Studio 有一个功能 可以自动查找通过 gradle 引用的库的正确源 我将 aar 的源代码作为单独的 jar 发布到 Nexus 但 Android Stu
  • 如何默认在 ActionOpenDocument 意图中显示“内部存储”选项

    我需要用户选择一个自定义文件类型的文件 并将其从 Windows 文件资源管理器拖到 Android 设备上 但默认情况下内部存储选项不可用 当我使用以下命令启动意图时 var libraryIntent new Intent Intent
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • 在activity_main.xml中注释

    我是安卓新手 据我所知 XML 中的注释与 HTML 中的注释相同 使用 形式 我想在 Android 项目的 Activity main xml 配置文件中写一些注释 但它给了我错误 值得注意的是 我使用的是 Eclipse 但目前 我直
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分

随机推荐

  • 使用列表理解调用函数列表

    我可以调用函数列表并使用列表理解吗 def func1 return 1 def func2 return 2 def func3 return 3 fl func1 func2 func3 fl 0 fl 1 fl 2 我知道我能做到 f
  • DBI SQL Server ODBC 连接中返回的数据库对象缺少字母

    不幸的是 如果不将机密信用信息共享到我遇到问题的数据库 我将无法为该问题创建良好的重现 希望下面有足够的信息来标记 ODBC 专家能够理解的任何明显问题 背景 我正在运行具有以下规格的 MacBook Pro Model Name MacB
  • 具有特定长度的 React.PropTypes 数组

    是否可以使用React PropTypes强制数组的长度 这是一个非常简单的案例 const TWO NUMBERS PropTypes array i need this to be an array of two numbers 我知道
  • 使用 Scala 的 Neo4j OGM 示例

    我尝试了 Luanne 文章中提到的例子Spring Data Neo4j 4 的本质 https www airpair com neo4j posts the essence of spring data neo4j 4在斯卡拉 该代码
  • Eclipse WTP / m2eclipse - 既不能清理也不能发布到 tomcat

    我正在 Ubuntu 11 10 64 位上的 Eclipse Indigo Java EE 大量使用 m2eclipse 中开发一个相当复杂的项目 Java Spring Maven 多模块 并带有 WAR 覆盖 直到今天早上一切都很好
  • Java哈希表具有单独的链接冲突解决方案?

    我已经使用内置的 java util hashtable 创建了一个程序 但现在我需要使用单独的链接来解决冲突 哈希表的这种实现是否可能 是否已经实现了使用单独链接的方法 看着source http www javakey net sour
  • Xcode 9.x 行复制和删除

    直到 Xcode 8 0 为止 都可以自定义 IDETextKeyBindingSet plist 文件 然而 现在看来修改此文件会导致 Xcode 停止正常运行 例如箭头键停止工作 并且似乎不再可能创建自己的快捷键 Xcode 从来没有行
  • 在 iOS 逻辑测试中使用 CocoaPods 时找不到库

    我正在尝试针对项目中的类编写一些 iOS 逻辑测试 这些类使用 podspec 中某些库的功能 我正在使用 Xcode 中提供的标准单元测试包 尽管不是应用程序测试 只是单元测试 例如 我使用 Magical Record 并且在我的 po
  • iPhone:将imageView设置在图像的透明部分

    我正在制作一个应用程序 其中用户将被允许首先选择一个相框 然后他 她必须从图库中为该相框选择 2 张照片 相框是一个包含两个透明孔的图像 其中我们有设置所选照片 他 她可以根据它们裁剪这些图像 在他 她完成裁剪后 将使用所选相框打开一个新视
  • 多线程编程C++[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • gcc 是否使用 Intel 的 SSE 4.2 指令进行文本处理(如果可用)?

    I read here https ieeexplore ieee org document 5762731英特尔推出的SSE 4 2 instructions用于加速字符串处理 引用文章中的内容 SSE 4 2指令集首先在Intel的Co
  • 在 Oracle 11g 中创建触发器时出现问题

    我在尝试使用 SQL Developer 在 Oracle 11g 数据库中创建触发器时遇到奇怪的错误 这是我所做的 我的桌子 CREATE TABLE COUNTRY CODE ID NUMBER 19 0 PRIMARY KEY NOT
  • 使用 FB Graph API 为特定页面创建 Facebook 事件

    我需要将 CMS 中的事件同步到 Facebook 特定页面 我正在尝试为我创建的页面创建一个事件 但仍然没有结果 我可以简单地创建与用户相关的事件 但与页面无关 代码使用Facebook PHP SDK http github com f
  • 当用户开始在 UITableView 上滚动时使用 alpha 隐藏 UIView?

    viewController由2个主要视图组成 容器视图和表视图 容器视图位于顶部 包含所有标签 例如日期和分数 我希望当用户开始滚动表视图的日期时隐藏此容器视图 到目前为止我有 连接了一个IBOutlet对于这个容器视图 这样我就可以在代
  • Django管理站点自定义search_fields查询

    在 django 管理中 您可以设置 ModelAdmin 的 search fields 以便能够搜索那里给出的属性 我的模型类有一个不是真正模型属性的属性 这意味着它不在数据库表中 该属性与另一个数据库表相关 该数据库表未通过关系与当前
  • ASP.NET 隐藏字段在回发后不更新

    我的 ASP 页面上有一些代码 如下所示
  • org.postgresql.util.PSQLException:错误:列 user0_.id 不存在 - Hibernate

    我有一个使用 hibernate 映射到 postgres 数据库的模型类 我的模型类是 Entity Table name USER public class User Id GeneratedValue Column name id p
  • 我怎样才能给这个CSS一个内边框?

    我试图给 page div 一个内部边框 该边框与顶部周围的灰色边框一致 http www designated net au testbed testpage http www designated net au testbed test
  • 是否有必要使用准备好的语句? [复制]

    这个问题在这里已经有答案了 准备好的语句添加了大量的代码 但我不断听到有人提到使用它们 从 1 行代码增加到大约 6 行代码会增加什么价值 这只是为了防止 SQL 注入吗 php net 关于准备好的语句here http php net
  • onAccessibilityEvent(AccessibilityEvent event) 不拦截通知

    在我的应用程序中 我必须捕获新传入的电子邮件通知并在屏幕上播放描述该事件的视频 我正在使用onAccessibilityEvent AccessibilityEvent event 收听生成的通知 我还使用以下代码来初始化我的 Access