从无障碍服务捕获所有事件
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 已开启触摸探索模式,这会影响您的设备对触摸的反应。
我已经为 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 已开启触摸探索模式,这会影响您的设备对触摸的反应。