Qt Quick Android: как интегрировать службу специальных возможностей

Я работаю над приложением Android, которое запускает сервис специальных возможностей. Я разработал сервисный java-класс и конфигурационные xml-файлы в Android Studio, чтобы протестировать его как собственное приложение. Когда я запускаю его, сервис специальных возможностей появляется в настройках специальных возможностей Android, как и ожидалось, и я могу включить его.

Однако я хотел бы интегрировать этот сервис в приложение Qt Quick Android. Когда я делаю это, добавляя тот же класс Java, Manifest и конфигурационные XML-файлы, проект компилируется и работает хорошо, но служба не отображается в настройках Android.

Вот мои файлы конфигурации:

manifest.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 ответ

Решение

Я нашел ошибку сам. В файле manifest.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>
Другие вопросы по тегам