自动抢红包

来源:互联网 发布:五家渠网络花店 编辑:程序博客网 时间:2024/05/17 03:54

前段时间在学安卓,刚巧快过年,思考着能不能写个自动抢红包,来迎接过年。

基本思路来源于这个文章,感谢作者 @AndroidMSky

文章链接:http://blog.csdn.net/AndroidMsky/article/details/53490459.

具体是通过 AccessibilityService,作者原文讲解的很详细了,这里就不重复说了,有兴趣的请点击链接。

在判断当前页面红包方面略作修改。

public void recycle(AccessibilityNodeInfo info) {        try {            if (info.getChildCount() == 0) {                if (info.getText() != null) {                    if ("领取红包".equals(info.getText().toString()) || "查看红包".equals(info.getText().toString())) {                        if (info.isClickable()) {                            info.performAction(AccessibilityNodeInfo.ACTION_CLICK);                        }                        AccessibilityNodeInfo parent = info.getParent();                        while (parent != null) {                            if (parent.isClickable()) {                                parents.add(parent);                                break;                            }                            parent = parent.getParent();                        }                    }else{                        if(info.getText().toString().indexOf("你领取了")>=0){                            if(parents.size()>0){                                parents.remove(parents.size()-1);                            }                        }                    }                }            } else {                for (int i = 0; i < info.getChildCount(); i++) {                    if (info.getChild(i) != null) {                        recycle(info.getChild(i));                    }                }            }        } catch (Exception e) {            e.printStackTrace();        }    }

在这里,我将红包放进列表,一旦该红包下面出现包含 我领取了 的textview,则移除列表的最末尾红包,

一般情况下,这个是不存在问题的,

但是,微信的红包领取,我领取了XXX的红包,默认出现在最新的消息,这样,当你连续领取多个后,才使用会导致判断不准,

出现的领取信息未必对应最末尾的红包

待优化。

0 0