我正在开发一个密码管理器应用程序,我需要检测Chrome(或其他浏览器)中的登录页面和用户名和密码字段以粘贴其值。
通过搜索节点,我可以列出root中的所有EditText
:
@Override
public void onAccessibilityEvent(AccessibilityEvent event)
{
AccessibilityNodeInfo source = getRootInActiveWindow();
if (source == null)
{
return;
}
for (int i = 0; i < source.getChildCount(); i++)
{
AccessibilityNodeInfo node = source.getChild(i);
if (node == null)
{
continue;
}
Log.i(TAG, node.getClassName().toString());
// If it is a `EditText`, add it to a ArrayList, and ...
if (node.getChildCount() > 0)
{
findFields(node);
}
}
}
但我怎么能理解哪个EditText
节点是用户名字段,哪个EditText
节点是密码字段?