android中使用AccessibilityService使其成为系统应用程序?

时间:2019-04-19 21:09:50

标签: android accessibilityservice

我正在制作一个AccessibilityService来获取注册了单击事件的应用程序的程序包名称。我需要在清单中请求

的许可吗?
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />

或在服务标签中,如下所示:

        <service
        android:name=".ListenToEvents"
   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/accessibility_service_config" />
    </service>

我猜我不需要两者,但是如果我在使用权限中的service标签之外请求权限,ide会告诉我该权限将使我的应用成为系统应用。但是,当权限位于service标签内时,它不会发出任何此类警告。

安装后,我确实启用了该应用程序的设置。未调用事件回调。

首先,我想知道我的应用程序是否是需要安装在android手机的系统分区中的系统应用程序。任何进一步的帮助将不胜感激。我已经看过GitHub上的两个项目,但是它们太大了,无法整理出相关的代码。因此,请提供执行基本任务所必需的代码,例如说听Tap事件。 谢谢

2 个答案:

答案 0 :(得分:0)

在构建自己的辅助功能服务时,当您执行该应用程序时,该服务将显示在“服务”部分下的“设置”->“辅助功能”中。然后,您可以打开服务并在所需的任何应用上运行它。关于开发无障碍服务,请参阅以下内容, https://codelabs.developers.google.com/codelabs/developing-android-a11y-service/#2 https://developer.android.com/guide/topics/ui/accessibility/service 为了听点击,我建议您遍历Codelab的“配置滚动按钮”部分,并使用ACTION_CLICK代替ACTION_SCROLL_FORWARD

答案 1 :(得分:0)

要澄清有关BIND_ACCESSIBILITY_SERVICE的信息。您在服务中公开该权限,以确保只有系统可以绑定到您的服务。只有系统可以使用该权限。