从可访问性服务捕获所有事件

问题描述 投票:0回答:1

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

我的错是什么?捕获所有事件在性能或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" />

my accessibility service.Java

public class MyAccessibilityService extends AccessibilityService {
    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
        Log.i("ACCESSIBILITY SERVICE", "ACCESSIBILITY SERVICE : " + event.toString());
    }
android accessibilityservice android-accessibility
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.