Flutter onAccessibilityEvent в службе специальных возможностей не вызывается

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

Мой проект - проект флаттера, но в настоящее время я работаю над своим сервисом в Котлине. Моя проблема в том, что функция onAccessibilityEvent в моей службе никогда не вызывается. Я искал несколько дней в Stackoverflow, но ни одно из решений не сработало для меня. Вызывается функция onServiceConnected.

Мой класс обслуживания:

class PasswordAutofillAccessService: AccessibilityService() {

    override fun onServiceConnected() {
        print("test service connected")
        super.onServiceConnected()
    }

    override fun onInterrupt() {
        print("test interrupt")
    }

    override fun onUnbind(intent: Intent?): Boolean {
        print("test unbind")
        return super.onUnbind(intent)        
    }

    override fun onAccessibilityEvent(event: AccessibilityEvent?) {
        print("test event")
    }

    override fun onRebind(intent: Intent?) {
        super.onRebind(intent)
    }
} 

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

<accessibility-service
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:accessibilityEventTypes="typeViewFocused|typeViewClicked"
    android:accessibilityFeedbackType="feedbackAllMask"
    android:canRequestEnhancedWebAccessibility="true"
    android:notificationTimeout="100"
    android:packageNames="net.company.my_app"
    android:description="@string/serviceDescription"
    android:canRetrieveWindowContent="true"
    android:accessibilityFlags="flagRetrieveInteractiveWindows"
    android:settingsActivity="net.company.my_app.AuthenticateActivity"
    />

В манифесте Android:

<service android:name=".PasswordAutofillAccessService"
            android:enabled="true"
            android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
            android:label="Test app">
            <intent-filter>
                <action android:name="android.accessibilityservice.AccessibilityService" />
            </intent-filter>
            <meta-data
                android:name="android.accessibilityservice"
                android:resource="@xml/accessibility_service" />
        </service>

В настоящее время я тестирую Pixel 3 с Android P (PQ3A.190705.003). Я пробовал с некоторыми другими (API 26 и +), и у него все еще есть проблема.

Спасибо за вашу помощь!


person Seb    schedule 30.09.2019    source источник
comment
вам, вероятно, нужно проверить, включен ли ваш сервис. посмотрите эту ссылку stackoverflow.com/questions/5081145/   -  person Abdu    schedule 03.12.2019
comment
Спасибо, во Flutter реализовано всего 3 специальных доступа. см.: Специальные возможности Flutter   -  person Seb    schedule 05.12.2019
comment
вам, вероятно, нужно проверить, предоставлены ли права доступа. Настройки специальных возможностей можно включить для службы, соответствующей соответствующей метке, в разделе «Настройки» > «Доступность» > «My_Application_Name» > Нажмите на переключатель, чтобы включить его.   -  person Abdu    schedule 01.01.2020