从辅助功能捕获所有事件

时间:2019-03-05 23:28:52

标签: android accessibilityservice android-accessibility

我已经为Android 7.0实施了辅助功能。代码如下所示。我想捕获所有可能的事件,然后将它们打印到控制台。现在的问题是,当我启动该服务时,我正在接收事件,但是电话不再对触摸输入作出反应,即电话基本上已被锁定。

我的错误是什么?就性能或CPU负载而言,捕获所有事件是否是一个问题?大部分时间将使用Skype(聊天),有时会使用Chrome浏览器。

清单

B

accessibility_config.xml

<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>

MyAccessibilityService.java

<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" />

1 个答案:

答案 0 :(得分:1)

flagRequestTouchExplorationMode已打开触摸浏览模式,这正在影响您的设备对触摸的反应方式。