android - 在三星设备上,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 数据?
解决方案
推荐阅读
- javascript - Node.js 中的 Heroku 自定义 DNS API 路由问题
- angular - 如何配置我的 Angular 应用程序以使用 CLI 进行生产和使用 JIT 进行开发?
- r - R 问题: shapiro.test 函数在 dplyr::summarize 中不起作用,而其他摘要函数则起作用
- angular - 配置以在保存更改时重建/重新加载角度应用程序
- c# - 如何在用户会话期间维护页面模型类变量?
- python - 如何按列名分组并加入
- c++ - 未定义对 '_imp__*' 的引用
- tcl - 为什么期望与预期不匹配?
- ios - Swift:AssetWriter 的输出文件在首次创建时对 AVAsset 不可用
- php - 从 WooCommerce 3+ 中的轮播中排除“隐藏”查询的产品