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

Qt Quick Android:如何集成可访问性服务

左丘宜然
2023-03-14

我正在开发一个运行辅助功能服务的Android应用程序。我在AndroidStudio中开发了服务java类和配置xml文件,将其作为本机应用程序进行测试。当我运行它时,辅助功能服务会按预期显示在Android辅助功能设置中,我可以启用它。

然而,我想把这项服务集成在Qt快速Android应用程序中。当我添加相同的java类、清单和配置xml文件时,项目编译并运行良好,但服务不会出现在Android设置中。

下面是我的配置文件:

显示xml:

<activity
...
</activity>
<service android:name="com.myCompany.app.MyService"
         android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"/>
        </intent-filter>
        <meta-data android:name="android.accessibilityservice"/>
        <meta-data android:resource="@xml/accessibilityservice"/>
</service>

accessiblityservice.xml:

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service
xmlns:tools="http://schemas.android.com/tools"
android:accessibilityEventTypes="typeWindowStateChanged"
android:accessibilityFeedbackType="feedbackGeneric"
android:accessibilityFlags="flagIncludeNotImportantViews"
xmlns:android="http://schemas.android.com/apk/res/android"
tools:ignore="UnusedAttribute"/>

有人能告诉我哪里错了吗?

共有1个答案

沈冠宇
2023-03-14

我自己发现了这个错误。在舱单上。xml元数据标记应位于一行上,如下所示:

<activity>
...
</activity>
<service android:name="com.myCompany.app.MyService"
         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/accessibilityservice"/>
</service>
 类似资料:
  • 我正在开发缓存清理应用程序,在谷歌上做了研究后,我发现Android系统已经将“Clear_App_Cache”权限移到了“签名,特权”状态。所以我无法用方法清除缓存。 谷歌playstore上的应用程序,如CCleaner、Power Clean等。正在使用辅助功能服务删除缓存。 我也为我的应用程序创建了基本的可访问性服务,但不知道如何删除应用程序的缓存

  • Jquery Mobile 是基于标准的,系统化的html构建的,使得页面能够在最广范围的设备上得到支持。对于A级的浏览器,许多Jquery Mobile组件,比"焦点管理","键盘导航"等都能支持,其他可以详细参加W3C的WAI-ARIA说明. 通过运用这些技术,我致力于使得通过Jquery Mobile开发的web产品拥有最好的可访问性,对于伤残人士,例如盲人,也可以用读屏软件,例如iphon

  • 我有一个页面,用户需要输入他们的电子邮件,然后点击底部的按钮进行确认。确认电子邮件时,屏幕上会显示一个进度对话框。当在编辑文本中输入无效电子邮件时,就像只输入字母“a”一样,编辑文本下方会以文本视图的形式显示一条错误消息。我正在努力让这个页面更容易访问。 我的预期方法是,当错误文本出现时,让对讲模式聚焦在错误文本上。然而,这并不是很有效。相反,当解除“进程”对话框覆盖时,屏幕上的任何内容都不会通过

  • JAVA访问修饰符的可访问性 公众 在 同一班级 同一套餐 子类 宇宙/其他软件包 我在互联网上寻找这些问题的答案,因为我有多个答案。一个视频说未声明的访问修饰符是公共的,而我看到另一个书面来源说未声明的访问修饰符在子类和其他包中没有限制。试图确认哪个是真的。

  • 问题内容: 与我的其他问题略相关:以下内容之间有什么区别: 同样,最后2个之间的差异是我最感兴趣的。 问题答案: 任何包中的类都可以访问公共类。 具有默认访问权限()的类仅对同一包中的其他类可见。 private和protected修饰符只能应用于内部类。 私有类仅对其封闭类以及同一封闭类中的其他内部类可见。 受保护的类对于同一包中的其他类以及扩展该封闭类的类都是可见的。

  • 我正在实现一个,用户可以在其中向左滑动以从列表中删除项目。 我希望我的应用程序是可访问的,我想知道是否有可能在对讲中以某种方式向用户宣布他需要刷卡,同时我也想知道我是否能捕捉到这个刷卡手势。 先谢谢你, 佩德罗