从无障碍服务捕获所有事件

Capturing all events from accessibility service

我已经为 Android 7.0 实现了无障碍服务。代码如下所示。我想捕获所有可能的事件并将它们打印到控制台。现在的问题是,当我启动服务时,我收到了事件,但是 phone 不再对触摸输入做出反应,即 phone 基本上被阻止了。

我的错误是什么?捕获所有事件在性能或 CPU 负载方面是否存在问题?大多数时候会使用 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());
    }

flagRequestTouchExplorationMode 已开启触摸探索模式,这会影响您的设备对触摸的反应。