在Android上没有调用onAccessibilityEvent

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

onAccessibilityEvent从不打电话给Android Pie。首先,这是我的代码

public class MyAccessibilityService extends AccessibilityService  {

    @Override
    public void onInterrupt() {
    }

    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
        final int eventType = event.getEventType();
        switch(eventType) {
            case AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED:
                Log.e("called called ","nnnnnnnnnnnnnnn TYPE_VIEW_TEXT_CHANGED "+visibility);
                show();
                break;
            case AccessibilityEvent.TYPE_VIEW_FOCUSED:
                break;
        }
    }

    @Override
    protected void onServiceConnected() {
        super.onServiceConnected();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }
}

这是我的明确服务

<service
    android:name=".service.MyAccessibilityService"
    class=".MyAccessibilityService"
    android:enabled="true"
    android:exported="false"
    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/serviceconfig" />
</service>

和serviceConfig xml

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:description="@string/app_name"
    android:accessibilityEventTypes="typeViewTextChanged|typeViewFocused"
    android:accessibilityFeedbackType="feedbackAllMask"
    android:notificationTimeout="20"
    android:canRetrieveWindowContent="true"
/>

onServiceConnectedis被调用没有问题,onDestroy永远不会被调用,因此,我的服务永远不会被杀死。 onAccessibilityEvent没有被调用,但是当我在像4.4.47.0这样的旧版本上测试时,它可以工作。然而,在Pie onAccessibilityEvent永远不会被召唤

android accessibilityservice
1个回答
0
投票

要尝试的一件事是删除notificationTimeout。该参数未经过充分测试。

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