中午被老爹的电话吵醒,居然是因为之前写的抢红包软件不好使了。。。
升级完微信的最新版本,发现拆红包页面的按钮由文字版的“拆红包”变成了图片版的“開”。
研究了一会儿,写出了下面的判定方式。
if (node!=null && node.getParent()!=null) {
int childNumber = node.getParent().getChildCount();
try {
if (childNumber==6 && "android.widget.Button".equals(node.getClassName())) {
String text1 = node.getParent().getChild(1).getText().toString();
String text5 = node.getParent().getChild(5).getChild(0).getText().toString();
if (text1.contains("发了一个红包") && text5.equals("看看大家的手气")) {
mContainsOpenLucky = true;
mNodeInfoList.add(node);
}
}
} catch (Exception e) {
}
}
主要的逻辑就是用AccessibilityService获取当前节点,判断自身节点是按钮,判断自己的父节点有6个子节点,第二个节点的文字包含“发了一个红包”和第五个节点的子节点包含“看看大家的手气”。通过这几个条件可以判断出此按钮就是拆红包。比以前的判断方式麻烦了许多。。。