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

Android易访问性服务绕过Android对讲

秦鸿羽
2023-03-14

我已经为我的应用程序编写了自己的AccessibilityService。在内部,它使用TextToSpeech为通过我的应用导航的用户提供语音反馈。当打开TalkBackMyAccessibilityService时,我从我的应用程序中获得口头反馈,然后是TalkBack的反馈。

有什么方法可以停止TalkBack为我的应用程序,因为我拥有我的应用程序的可访问性服务?

共有1个答案

邵崇凛
2023-03-14

我当时正在处理这个问题,通过这样做我成功地解决了这个问题。

你必须让你的服务负责你的应用程序的可访问性,因为在清单中你必须添加以下内容:

<service android:name="communication_interfaces.MyAccessibilityService"
        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService" />
        </intent-filter>
        <meta-data android:name="android.accessibilityservice"
                   android:resource="@xml/serviceconfig" />
    </service>

then in serviceconfig

    <?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
     android:accessibilityEventTypes="typeAllMask"
     android:packageNames="com.packagename"
    android:accessibilityFeedbackType="feedbackSpoken|feedbackHaptic|feedbackAudible|feedbackGeneric"
     android:notificationTimeout="100"
     android:settingsActivity="com.myActivity"
     android:canRetrieveWindowContent="true"
     android:description="@string/service_description"/>

就是这样,请记住,如果要执行此操作,则不需要重写onServiceConnected()。

/*@Override
        protected void onServiceConnected()
 类似资料:
  • 问题内容: 我在活动中创建了一个领域对象。我需要能够在我创建的服务中访问该对象。但是在服务中创建Realm对象时出现错误 java.lang.IllegalStateException:来自错误线程的领域访问。只能在创建对象的线程上访问领域对象 现在我理解这意味着,因为领域对象是在我的活动上创建的,所以我无法从后台线程访问它。但是,除了创建自己的自定义处理程序线程外,我没有找到其他简便的方法,但这

  • 我开发了一个基于可访问性服务的Android应用程序。但是我有个问题,我在网上找不到任何帮助。当我在任何设备上安装应用程序时,很明显,它直到: 我去无障碍设置 查找其无障碍服务 进入并按下开关打开服务 问题有点复杂:启用辅助功能服务后,我可以在辅助功能设置屏幕中看到服务显示“已启用”。事实上,应用程序正在运行。但是如果我进入服务,在顶部和右侧有一个开关显示为OFF。为什么?它没有感觉到服务已启用且

  • 我正在开发一个运行辅助功能服务的Android应用程序。我在AndroidStudio中开发了服务java类和配置xml文件,将其作为本机应用程序进行测试。当我运行它时,辅助功能服务会按预期显示在Android辅助功能设置中,我可以启用它。 然而,我想把这项服务集成在Qt快速Android应用程序中。当我添加相同的java类、清单和配置xml文件时,项目编译并运行良好,但服务不会出现在Androi

  • 我无法获得足够的权限来使用我的应用程序访问Azure Key Vault(而不是通过用户登录)。以下是我的设置: 我已经给了我的名为“keyvault”的应用程序所有的许可。 我的应用程序注册了Azure Active Directory。我已经允许它进入密钥库:

  • 我的密码是 有什么办法解决这个问题吗

  • 我正在开发缓存清理应用程序,在谷歌上做了研究后,我发现Android系统已经将“Clear_App_Cache”权限移到了“签名,特权”状态。所以我无法用方法清除缓存。 谷歌playstore上的应用程序,如CCleaner、Power Clean等。正在使用辅助功能服务删除缓存。 我也为我的应用程序创建了基本的可访问性服务,但不知道如何删除应用程序的缓存