Я пытаюсь создать службу специальных возможностей, чтобы использовать функцию автозаполнения в браузерах на 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 и +), и у него все еще есть проблема.
Спасибо за вашу помощь!