在Android中使用AccessibilityService使它成为一个系统应用程序?

问题描述 投票:0回答:2

我正在创建一个AccessibilityService来获取注册了点击事件的app的包名。在我的清单中,我需要请求许可

<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>

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

我在安装后启用了应用程序的设置。没有调用事件的回调。

首先,我想知道我的应用程序是否是需要安装在Android手机系统分区中的系统应用程序。任何进一步的帮助将不胜感激。我已经看过GitHub上的两个项目,但它们太大了,无法理清相关的代码。所以请帮助完成基本任务所需的代码,让我们说听一下点击事件。谢谢

android accessibilityservice
2个回答
0
投票

当您构建自己的辅助功能服务时,当您执行该应用程序时,该服务将出现在“服务”部分下的“设置” - >“辅助功能”中。然后,您可以打开您的服务并在任何您想要的应用程序上运行它。关于开发可访问性服务,请参阅以下内容,https://codelabs.developers.google.com/codelabs/developing-android-a11y-service/#2 https://developer.android.com/guide/topics/ui/accessibility/service为了听取点击,我建议通过Codelabs的“配置滚动按钮”部分并使用ACTION_CLICK而不是ACTION_SCROLL_FORWARD


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.