微信抢红包插件v1.0-1.3 安卓版 Android
介绍
微信抢红包插件是一款简单的微信抢红包插件,只需到系统服务里打开抢红包功能即可生效。帮助你在微信群聊抢红包时战无不胜,附带详细文档。 软件说明:这个Android插件可以帮助你在微信群聊抢红包时战无不胜。当检测到红包时,插件会自动点击屏幕,人工点击的速度无法比拟。 版本特色:【注意,安装完显示还是 1.0 实际是 1.3 的升级版本】 增加了微信语言 英语 的支持,修复了由此导致的一系列问题. 修改了红包重复判断的逻辑,戳“名称与缓存不一致的红包”和“名称一致且间隔大于5秒”的红包。 预期特性:- 可以抢屏幕上显示的所有红包,同类插件往往只能获取最新的一个红包。 - 智能跳过已经戳过的红包,避免频繁点击影响正常使用。 - 红包日志 (默认未开启),方便查看抢过的红包内容。 - 性能优化,感受不到插件的存在,可一直后台开启,不影响日常聊天。 - 由于这是一份教学代码,项目的文档和注释都比较完整,代码适合阅读。 实现原理:1. 抢红包流程的逻辑控制 这个插件通过一个Stage类来记录当前对应的阶段。Stage类被设计成单例并惰性实例化,因为一个Service不需要也不应该处在不同的阶段。对外暴露阶段常量和entering和getCurrentStage两个方法,分别记录和获取当前的阶段。 2. 屏幕内容检测和自动化点击的实现 和其他插件一样,这里使用的是Android API提供的AccessibilityService。这个类位于android.accessibilityservice包内,该包中的类用于开发无障碍服务,提供代替或增强的用户反馈。 AccessibilityService 服务在后台运行,等待系统在发生 AccessibilityEvent 事件时回调。这些事件指的是用户界面上发生的状态变化, 比如焦点变更、按钮按下等等。服务可以请求“查询当前窗口中内容”的能力。 开发辅助服务需要继承该类并实现其抽象方法。 3. 获取屏幕上的所有红包 和其他插件最大的区别是,这个插件的逻辑是获取屏幕上所有的红包节点,去掉已经获取过的之后,将待抢红包加入队列,再将队列中的红包一个个打开。 4. 打开队列中的红包 通过红包打开后显示的文本判断这个红包是否可以抢,进行接下来的操作。 判断红包节点是否被重用 这也是实现时的一个坑。前面提到了实例池的设计,当我们把红包们加入待抢队列,戳完一个红包再回来时,队列中的其他红包节点可能已被回收重用,如果再去点击这个节点,显然没有什么卵用。 版权与免责说明:本项目源自小米今年秋季发布会时演示的抢红包测试源码。stable分支基于此代码继续开发,dev分支重写了几乎所有的逻辑代码。应用的包名com.miui.hongbao未变。 由于插件可能会改变自然的微信交互方式,这份代码仅可用于教学目的,不得更改后用于其他用途。对于使用插件时可能发生的任何情形,由使用者自行承担,包括但不限于“禁用红包功能”、“微信封号”。 项目使用MIT许可证。在理解可能的风险后,你可以将代码用于任何用途。 |