首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有了这个再也不担心任何微信红包,Python就是好用

为了应对领导在群里时不时的一个红包,写一个抢红包的应用迫在眉睫了。之前由于没有自动抢红包错失了100RMB+的红包啊!

先来整理下思路。要实现抢红包,那么就要在红包来的时候去打开微信,执行点击的动作。被点击的控件肯定是带有红包关键字的。打开红包后,还需要去点击一下打开。

为了实现上面的一系列步骤,方法有两种。

从framwork进行修改。这种方式适合于自制rom。如手机厂商多采用这种方法。有个同事就通过这方法实现了红包功能。

就只能通过google 提供了一个辅助服务类了。该类可以监听通知、监听窗口变化,模拟点击等功能。该文就采用辅助服务类。

STEP1 辅助服务类的使用

通过配置manifest文件就可以使用辅助服务了。

该服务可以进行配置,配置如下:

配置好后,该服务就可以使用了。可以通过一个按钮引导用户去开启这个服务

因为这个服务在系统设置里,所以通过点击去打开系统设置。然后就可以开启次服务。

接下来就是重点了。

首先需要去继承一个AccessibilityService 。

需要去重写他的两个方法。onAccessibilityEvent方法用来接收服务监听的事件,此处为通知和窗口变化。

现在先来看看 通知来的时候如何处理:

在打开微信后,会发生窗口状态变化。这个时候该事件将会被监听。

而且聊天界面是整个Activity contentView的父VIEW。通过解析页面可以轻易的发现。

再新打开的页面上,通过辅助类提供的方法对节点进行遍历。

通过 AccessibilityNodeInfo nodeInfo = getRootInActiveWindow(); 获取跟节点,同时也可以通过getchirld 方法来看看他的子节点。

其余7个分别是搜索、更多、微信、通信录等。

这时候,我们可以继续利用对节点的遍历来实现点击的动作。代码如下:

至此,基本自动抢红包的功能都完成了。为了保证程序的健壮性,还需要对抢红包的失败的情况进行处理。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180309A1GC0S00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券