Flatter onAccessibilityEvent в сервисе Accesibility не вызывается - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь создать службу специальных возможностей, чтобы использовать функцию автозаполнения в браузерах на 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"
    />

В AndroidManifest:

<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 и +), и это все еще проблема.

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

...