У меня есть этот класс AccessibilityService, работающий в Android Oreo (API 27) и ранее:
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.test.testaccessibility">
<application
android:icon="@mipmap/ic_launcher"
android:label="TestAccessibility">
<service
android:name=".TestAccessibility"
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/test_accessibility" />
</service>
</application>
test_accessibility.xml
<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
android:accessibilityEventTypes="typeViewTextChanged"
android:accessibilityFeedbackType="feedbackGeneric"
android:accessibilityFlags="flagDefault"
android:canRetrieveWindowContent="true"
android:notificationTimeout="10" />
TestAccessibility.java пакет com.google.test.testaccessibility;
import android.accessibilityservice.AccessibilityService;
import android.util.Log;
import android.view.accessibility.AccessibilityEvent;
public class TestAccessibility extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
Log.d("TestAccessibility", "onAccessibilityEvent");
}
@Override
public void onInterrupt() {
Log.d("TestAccessibility", "onInterrupt");
}
@Override
protected void onServiceConnected() {
Log.d("TestAccessibility", "onServiceConnected");
}
}
Работает и метод onAccessibilityEvent вызывается каждый раз, когда текст изменяется в любом приложении, но когда я запускаю этот код в Android Pie (API 28), вызывается только onServiceConnected .Я предполагаю, что что-то было изменено с API 27 на 28, но я не могу найти ничего в сети.Кто-нибудь может дать мне подсказку?
Спасибо!