1

我正在寻找一种方法来检查由可访问性服务实现的事件源,以查看它是否是用户名字段。我发现有一种方法可以检查该字段是否是如下密码:

 if (event.isPassword()){
            Bundle arguments = new Bundle();
            arguments.putCharSequence(AccessibilityNodeInfo
                    .ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, "android");
            source.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, arguments);}

好吧,我也想检测用户名字段,因为如果我使用 (!event.isPassword()) 它会检测例如 url 文本框甚至搜索框,这是我的条件:

 if (source != null && event.getClassName().equals("android.widget.EditText") && getEventType(event).equals("TYPE_VIEW_FOCUSED"))
4

1 回答 1

3

Android 中没有“用户名”字段的概念,与其他类型的字段不同。您没有可靠的方法来确定给定EditText的内容是“用户名”、人的姓氏还是一首诗的前几个词。

请注意,您的isPassword()方法也有些不可靠。EditText可以在不使用内置密码功能的情况下创建一个隐藏密码条目的小部件,对于这些情况,我希望isPassword()返回false. 相反,开发人员可以使用一种password类型EditText来输入密码以外的信息。还有一种情况是EditText允许用户隐藏和显示密码;随着密码显示,我不知道isPassword()会返回什么。

于 2015-11-06T15:08:28.043 回答