我正在制作一个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事件。 谢谢
答案 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的信息。您在服务中公开该权限,以确保只有系统可以绑定到您的服务。只有系统可以使用该权限。