android开发: 无障碍服务接收到的AccessibilityNodeInfo中使用getViewIdResourceName拿到的值都是null这是怎么回事?
在Android开发中,使用无障碍服务接收到的AccessibilityNodeInfo对象,可以通过调用getViewIdResourceName()方法获取节点的资源ID(即View的id属性值)。但有时候可能会返回null值,这可能是由以下几个原因引起的:
-
节点没有设置id属性:如果节点的id属性没有设置或者未定义,那么调用getViewIdResourceName()方法将返回null。
-
应用的混淆规则:如果你的应用启用了混淆(ProGuard)并且混淆规则中包含了View的id属性,可能会导致获取到的资源ID为null。可以通过在混淆规则文件中添加保留id属性的规则来解决这个问题。
-
平台版本限制:在一些较旧的Android平台版本上,可能无法通过getViewIdResourceName()方法获取到资源ID,这可能是因为平台版本的限制导致的。
综上所述,如果你在使用无障碍服务接收到的AccessibilityNodeInfo中调用getViewIdResourceName()方法返回null,可以检查节点是否设置了id属性,或者尝试关闭混淆规则,或者确定平台版本是否支持获取资源ID
原文地址: https://www.cveoy.top/t/topic/inj9 著作权归作者所有。请勿转载和采集!