#Get_Meory说明
## 简介
自从微信推出抢红包功能后,市面上相应出现了微信抢红包软件,而且红极一时,你可以在Google上搜索到很多讲解微信红包软件的文章,但是这些文章都如蜻蜓点水,只讲解了最简单的情况下抢红包的实现思路,本篇文章建立在其他微信抢红包软件的文章只上,讲讲比较复杂的场景下快速抢到红包,如手机息屏时抢到红包、屏蔽微信群消失时抢到红包等等
## 效果
首先来看一下实现后的效果,项目名字叫做红包鸟
首先开启红包鸟的辅助功能选项
![开启红包鸟的辅助服务.gif](http://obfs4iize.bkt.clouddn.com/%E5%BC%80%E5%90%AF%E7%BA%A2%E5%8C%85%E9%B8%9F%E7%9A%84%E8%BE%85%E5%8A%A9%E6%9C%8D%E5%8A%A1.gif)
四种情况下的抢红包:
1.不在微信聊天界面收到微信的状态栏提示时,抢红包
![抢通知栏红包.gif](http://obfs4iize.bkt.clouddn.com/%E6%8A%A2%E9%80%9A%E7%9F%A5%E6%A0%8F%E7%BA%A2%E5%8C%85.gif)
2.在当前聊天界面时,抢红包
![抢正在聊天界面中出现的红包.gif](http://obfs4iize.bkt.clouddn.com/%E6%8A%A2%E6%AD%A3%E5%9C%A8%E8%81%8A%E5%A4%A9%E7%95%8C%E9%9D%A2%E4%B8%AD%E5%87%BA%E7%8E%B0%E7%9A%84%E7%BA%A2%E5%8C%85.gif)
3.微信群消息被屏蔽时,抢红包
![抢设置了免打扰的红包.gif](http://obfs4iize.bkt.clouddn.com/%E6%8A%A2%E8%AE%BE%E7%BD%AE%E4%BA%86%E5%85%8D%E6%89%93%E6%89%B0%E7%9A%84%E7%BA%A2%E5%8C%85.gif)
4.没有设置锁屏密码,手机息屏时抢红包
![抢无密码锁屏的红包.gif](http://obfs4iize.bkt.clouddn.com/%E6%8A%A2%E6%97%A0%E5%AF%86%E7%A0%81%E9%94%81%E5%B1%8F%E7%9A%84%E7%BA%A2%E5%8C%85.gif)
## 思路
实现红包鸟,一开始有两个大致的思路,一就是监听微信的网络请求数据,将接受到红包的请求数据辨别出来,然后在进行相应的抢红包操作,后面通过抓包软件抓包发现数据都是加密的,这样是意料之中的事情,毕竟一个国民级应用,在网络数据安全性上还是会有一定的考虑的,不然自己的聊天消息随随便便就被人监听就太欠缺了,所以就有了第二个思路,模拟用户抢红包,就像PC端的按键精灵将用户的鼠标点击都记录下来,生成对应的脚本,然后就可以重复用户点击,我的第一个反应是Monkey(一个用于Android测试的工具),但是Android上有AccessibilityService这个更优雅的解决方式,市面上几乎所有的微信抢红包神器都是使用这个类来实现的
## 讲讲AccessibilityService
AccessibilityService是Google为了让Android系统更加易用,而为用户提供的无障碍辅助服务,该服务主要用于帮助身体有缺陷的用户(残疾、失明)来使用Android系统,它可以监听界面变化的事件,模拟用户的操作
AccessibilityService运行在后台,需要用户手动开启(因为这个功能太吊了),界面中的任何变化都会产生一个事件然后由系统发送给AccessibilityService,我们通过对不同事件的判断,构建AccessibilityNodeInfo类对象来模拟用户的操作,如点击、长按、滑动等等
本篇文章不会讲太多基础知识,大家可以看[你真的理解AccessibilityService吗](http://www.jianshu.com/p/4cd8c109cdfb)这篇文章,或者自己Google更多的相关文章,其实并不难懂
## 模拟抢红包
在抢红包时,用户是怎么抢,红包鸟就怎么抢,它有多种情况,如下
情况一:用户不在微信的聊天界面,而在其他界面,这时微信会有通知栏通知
我所说的微信聊天界面
![微信聊天界面.jpg](http://obfs4iize.bkt.clouddn.com/%E5%BE%AE%E4%BF%A1%E8%81%8A%E5%A4%A9%E7%95%8C%E9%9D%A2.jpg)
那么红包鸟抢红包的步骤就是:
1.通过AccessibilityService服务获知Android通知栏发生了变化
2.获得通知栏中的内容
3.判断是否有“[微信红包]”这四个字
4.如果有就通过状态栏进入微信中相应的聊天界面
5.通过查找界面中“领取红包”或者“查看红包”这几个字来找到红包
6.模拟点击红包,进行领取
情况二:用户在微信聊天界面,这是有这个界面的消息,微信是不会通过通知栏提示的
那么红包鸟抢红包的步骤就是:
1.通过AccessibilityService服务获知微信界面滚动(新消息来了,界面会滚动)
2.判断是不是红包
3.是红包就模拟点击红包,进行领取
情况三:用户在微信列表,并将该群设为消息免扰,那么微信同样不会通过通知栏提示
我所说的微信列表
![微信列表](http://obfs4iize.bkt.clouddn.com/%E5%BE%AE%E4%BF%A1%E5%88%97%E8%A1%A8.png)
那么红包鸟抢红包的步骤就是:
1.通过AccessibilityService服务获知微信界面内容变化
2.判断界面中是否有“[微信红包]”这四个字
3.有则点击微信列表中的这个Item,进入聊天界面
4.通过查找界面中“领取红包”或者“查看红包”这几个字来找到红包
5.模拟点击红包,进行领取
如果你屏蔽了该群的消息,有不在微信列表,红包鸟就抢不到红包
情况四:用户没有设置消息免扰,手机息屏,此时微信通过通知栏来点亮屏幕,提醒用户有新信息
那么红包鸟抢红包的步骤就是:
1.通过AccessibilityService服务获知Android通知栏发生了变化
2.判断通知栏内容是否包含“[微信红包]”这四个字
3.如果有,则双击通知栏,进入微信聊天界面
4.模拟点击,进行抢红包
如果你屏蔽了该群,那么手机息屏时,微信就不会通过通知栏点亮屏幕对用户进行通知,这时红包鸟是抢不到红包的
你可以将红包鸟想象成另外一个你,你能抢的红包,它就能抢而且手速比你快,但是你不能抢的,比如因为屏蔽了群,你在玩其他的东西,你都不知道有红包发过来了,红包鸟也抢不了
## 具体实现步骤
### 准备AccessibilityService类
首先在AndroidManifest文件中声明一个继承AccessibilityService类的服务,如下
```xml
<service
android:name=".server.GetMemoryServer"
android:enabled="true"
android:exported="true"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/get_memory_config" />
</service>
```
这个service需要android.permission.BIND_ACCESSIBILITY_SERVICE权限才可以使用,而且还需要将intent-filter中的action设置为android.accessibilityservice.AccessibilityService,对系统意图进行过滤,接着配置meta-data标签,通过xml文件来实现对GetMemoryServer类的配置
上面的代码,处理meta-data标签中的的resource属性可以更改,其他都不能改动,错一个字母,自动的AccessibilityService服务就无法生效
接着看到xml文件中的get_memory_config.xml配置文件
```xml
<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
android:accessibilityEventTypes="typeAllMask"
android:accessibilityFeedbackType="feedbackGeneric"
android:accessibilityFlags=""
android:canRetrieveWindowContent="true"
android:description="@string/description"
android:notificationTimeout="100"
android:packageNames="com.tencent.mm" />
```
accessibilityEventTypes:表示无障碍服务监听界面中的哪些变化,如窗口打开、滑动、控件焦点变化等
accessibilityFeedbackType:表示反馈方式
canRetrieveWindowContent:无障碍服务是否可以获得窗口中的内容
notificationTimeout:接受事件的间隔时间
packageNames:指定该服务需要监听那个包产生的事件
接着创建一个类来继承AccessibilityService类,实现其中onAccessibilityEv
没有合适的资源?快使用搜索试试~ 我知道了~
微信抢红包神器-红包鸟(可以抢多种情况下的红包,支持手机息屏抢红包、屏蔽群抢红包).zip
共27个文件
xml:8个
java:7个
png:6个
需积分: 5 0 下载量 138 浏览量
2024-03-22
11:45:44
上传
评论
收藏 1.06MB ZIP 举报
温馨提示
微信抢红包神器-红包鸟(可以抢多种情况下的红包,支持手机息屏抢红包、屏蔽群抢红包).zip 微信抢红包神器-红包鸟(可以抢多种情况下的红包,支持手机息屏抢红包、屏蔽群抢红包).zip 微信抢红包神器-红包鸟(可以抢多种情况下的红包,支持手机息屏抢红包、屏蔽群抢红包).zip 微信抢红包神器-红包鸟(可以抢多种情况下的红包,支持手机息屏抢红包、屏蔽群抢红包).zip 微信抢红包神器-红包鸟(可以抢多种情况下的红包,支持手机息屏抢红包、屏蔽群抢红包).zip 微信抢红包神器-红包鸟(可以抢多种情况下的红包,支持手机息屏抢红包、屏蔽群抢红包).zip 微信抢红包神器-红包鸟(可以抢多种情况下的红包,支持手机息屏抢红包、屏蔽群抢红包).zip 微信抢红包神器-红包鸟(可以抢多种情况下的红包,支持手机息屏抢红包、屏蔽群抢红包).zip 微信抢红包神器-红包鸟(可以抢多种情况下的红包,支持手机息屏抢红包、屏蔽群抢红包).zip 微信抢红包神器-红包鸟(可以抢多种情况下的红包,支持手机息屏抢红包、屏蔽群抢红包).zip 微信抢红包神器-红包鸟(可以抢多种情况下的红包,支持手机息屏抢红包、屏蔽群抢红包
资源推荐
资源详情
资源评论
收起资源包目录
微信抢红包神器-红包鸟(可以抢多种情况下的红包,支持手机息屏抢红包、屏蔽群抢红包).zip (27个子文件)
project_code_0628
src
androidTest
java
com
ayu
showmethememory
ExampleInstrumentedTest.java 750B
test
java
com
ayu
showmethememory
ExampleUnitTest.java 401B
main
java
com
ayu
showmethememory
utils
IsServerRunning.java 893B
SharedPerferenceUtil.java 2KB
server
LookServer.java 1KB
GetMemoryServer.java 20KB
MainActivity.java 3KB
res
mipmap-xxhdpi
ic_launcher.png 8KB
mipmap-hdpi
ic_launcher.png 3KB
mipmap-mdpi
ic_launcher.png 2KB
mipmap-xxxhdpi
ic_launcher.png 10KB
mipmap-xhdpi
ic_launcher.png 5KB
xml
get_memory_config.xml 433B
values-w820dp
dimens.xml 358B
values
dimens.xml 211B
colors.xml 287B
strings.xml 140B
styles.xml 383B
layout
activity_main.xml 2KB
drawable
icon.png 3KB
AndroidManifest.xml 2KB
proguard-rules.pro 644B
build.gradle 871B
app.iml 13KB
app-release.apk 1.24MB
.gitignore 7B
README.md 26KB
共 27 条
- 1
资源评论
辣椒种子
- 粉丝: 4139
- 资源: 5745
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功