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

#android #accessibilityservice #android-accessibility

#Android #accessibilityservice #Специальные возможности

Вопрос:

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

В чем моя ошибка? Является ли захват всех событий проблемой с точки зрения производительности или загрузки процессора? Большую часть времени будет использоваться skype (чат), а иногда и браузер Chrome.

Манифест

 <service android:name=".smartphone.MyAccessibilityService"
    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/accessibility_config" />
</service>
  

accessibility_config.xml

 <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:accessibilityEventTypes="typeAllMask"
    android:accessibilityFeedbackType="feedbackAllMask"
    android:canRequestTouchExplorationMode="true"
    android:canRequestEnhancedWebAccessibility="true"
    android:canRequestFilterKeyEvents="true"
    android:canRetrieveWindowContent="true"
    android:accessibilityFlags="flagDefault|flagIncludeNotImportantViews|flagReportViewIds|flagRequestEnhancedWebAccessibility|flagRequestFilterKeyEvents|flagRequestTouchExplorationMode|flagRetrieveInteractiveWindows" />
  

MyAccessibilityService.java

 public class MyAccessibilityService extends AccessibilityService {
    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
        Log.i("ACCESSIBILITY SERVICE", "ACCESSIBILITY SERVICE : "   event.toString());
    }
  

Ответ №1:

В режиме flagRequestTouchExplorationMode включен режим исследования прикосновений, который влияет на то, как ваше устройство реагирует на прикосновения.