首页 > 解决方案 > 在三星设备上,AccessibilityEvent 的 AccessibilityNodeInfo 始终为空

问题描述

我试图获取有关 AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED 的信息,但在三星设备上,AccessibilityNodeInfo 始终为空

我的配置:

无障碍服务.kt

 override fun onAccessibilityEvent(event: AccessibilityEvent?){
      if (event?.eventType == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED){
           Log.d(TAG, "Source: ${event!!.source}") --> Source is null
      }
 }

   override fun onServiceConnected() {
    val info = AccessibilityServiceInfo()
    info.eventTypes = AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED
    info.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC
    info.notificationTimeout = 400
    info.packageNames = null
    serviceInfo = info
   }

AndroidManifest.xml

  <service
        android:name=".AccessibilityService"
        android:label="Accessibility Test"
        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/accesibility_service_config" />
    </service>

access_service_config.xml

<?xml version="1.0" encoding="utf-8"?>
 <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
 android:description="@string/accesibility_description"
 android:accessibilityEventTypes="typeWindowContentChanged"
 android:notificationTimeout="100"
 android:canRetrieveWindowContent="true"/>

在其他手机型号中,服务正常工作,我得到了信息。

如何获取 AccessibilityNodeInfo 数据?

标签: androidsamsung-mobileandroid-accessibility

解决方案


推荐阅读