安卓微信自动抢红包插件实现和优化
又是兴趣系列
网上有很多自动强红包的例子和代码,笔者也是做了一些优化。
先说说自己的两个个优势
1.可以在聊天界面自动强不依赖于通知栏推送
2.可以在屏幕熄灭的时候的时候点亮屏幕自动抢(目前只测过flyme)
先上图:
代码传送门:
https://github.com/AndroidMsky/WXhongbao
欢迎点星星~
原理:
通过AccessibilityService监听到状态栏通知,进行模拟点击,获取屏幕中view节点为领取红包的list并且点击最后一个。
如果不通过状态栏通知,通过视图变化AccessibilityEvent的2048事件也是就
public static final int TYPE_WINDOW_CONTENT_CHANGED = 0x00000800;
每次接受到新消息都会有这个时间的回调:
public void onAccessibilityEvent(AccessibilityEvent event) {int eventType = event.getEventType();if (auto)Log.e("AAAAAAAA", "有事件" + eventType);switch (eventType) {//当通知栏发生改变时case 2048:pubclassName = event.getClassName().toString();Log.e("AAAAAAAA", "有2048事件" + pubclassName + auto);if (!auto && pubclassName.equals("android.widget.TextView") && ALL) {Log.e("AAAAAAAA", "有2048事件被识别" + auto + pubclassName);getLastPacket(1);}if (auto && WXMAIN) {getLastPacket();auto = false;}break;
在接受的时候,去处理一下去点击领取红包。然而这个方法会被频发调用,我们就加一个”Android.widget.TextView”事件类的筛选,然后还是会被很频繁调用,会比较迟性能耗电。 那就加个布尔ALL标志位,让用户控制是否开启聊天界面内也抢红包的模式。 为了不反复领取要记录上次界面内的红包数量在红包增加的时候才去领取:
private void getLastPacket(int c) {Log.e("AAAAAAAA", "新方法" + parents.size());AccessibilityNodeInfo rootNode = getRootInActiveWindow();recycle(rootNode);Log.e("AAAAAAAA", "last++" + lastbagnum + "当前页面红包数" + parents.size());if (parents.size() > 0 && WXMAIN) {Log.e("AAAAAAAA", "页面大于O且在微信界面");if (lastbagnum < parents.size())parents.get(parents.size() - 1).performAction(AccessibilityNodeInfo.ACTION_CLICK);lastbagnum = parents.size();parents.clear();}}
目前在通过插件领过几个红包后,一个聊天界面突然发第一个红包(没有通知栏)会有一定几率领取不到,再继续发就正常了,应该是清空问题,该bug笔者也在更改逻辑中。
点亮屏幕方法(有密码肯定是不行的):
private void wakeAndUnlock2(boolean b){if(b){//获取电源管理器对象pm=(PowerManager) getSystemService(Context.POWER_SERVICE);//获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是调试用的Tagwl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "bright");//点亮屏幕wl.acquire();//得到键盘锁管理器对象km= (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);kl = km.newKeyguardLock("unLock");//解锁kl.disableKeyguard();}else{//锁屏kl.reenableKeyguard();//释放wakeLock,关灯wl.release();}}
接受到通知栏的红包消息亮屏设置标志位为自动领取,调取领取函数:
if (content.contains("[微信红包]")) {if (event.getParcelableData() != null &&event.getParcelableData() instanceof Notification) {Notification notification = (Notification) event.getParcelableData();PendingIntent pendingIntent = notification.contentIntent;try {auto = true;wakeAndUnlock2(true);pendingIntent.send();Log.e("demo", "进入微信" + auto + event.getClassName().toString());} catch (Exception e) {e.printStackTrace();}}}
点击界面控件方法:(不同微信版本控件id不一样我的是6.3.25)如果不知道怎么获取这个id可以看下面的参考文献最后一个,右侧的resource-id就是这个id
顺便说一下目前安卓最新版6.3.31开红包按钮的id是com.tencent.mm:id/bg7换成这个就好了
。
click("com.tencent.mm:id/bag");
在Activity中设置聊天中领取开关:
public void start(View v) {if (AirAccessibilityService.ALL) {AirAccessibilityService.ALL = false;((Button) v).setText("对话内监控+关");} else {AirAccessibilityService.ALL = true;((Button) v).setText("对话内监控+开");};}
AccessibilityService的确很吊,你用AccessibilityService或者root后的安卓手机能干太多事了,或好或坏,但毕竟技术是无罪的。
安卓微信自动抢红包插件实现和优化相关推荐
- 安卓微信自动抢红包插件 实现 和优化
转载请注明作者AndroidMSky和链接http://blog.csdn.net/AndroidMsky/article/details/53490459 又是兴趣系列 网上有很多自动强红包的例子和 ...
- 偶然一次机会对xposed插件学习记录(微信自动抢红包原理研究,适配微信8.0)
为什么称这次机会纯属偶然? 微信的一次大版本更新,朋友圈狂刷表情包新增动画特效的情况下,本着学习年轻人的喜好,融入年轻人生活圈的宗旨(其实我也才刚毕业),我也将微信更新到8.0,在我体验微信8.0带来 ...
- 插件 iOS微信自动抢红包(非越狱)
微信红包 前言:最近笔者在研究iOS逆向工程,顺便拿微信来练手,在非越狱手机上实现了微信自动抢红包的功能. 题外话:此教程是一篇严肃的学术探讨类文章,仅仅用于学习研究,也请读者不要用于商业或其他非法途 ...
- 腾讯获赔 475 万!首例“微信自动抢红包”不正当竞争案宣判
整理 | 王晓曼 出品 | 程序人生(ID:coder _life) 7月16日,北京知识产权法院在官方微信发文称,该院日前审结了一起与"自动抢红包"有关的不正当竞争纠纷案. 因开 ...
- 微信自动抢红包软件被判赔475万
7月18日消息,据京法网事报发布,北京知识产权法院近期审结了一起与"自动抢红包"有关的不正当竞争纠纷案.知产法院最终认定掌上远景公司构成不正当竞争,判决掌上远景公司赔偿二原告经济损 ...
- 判了!腾讯获赔 475 万!首例“微信自动抢红包”不正当竞争案宣判
点击 机器学习算法与Python学习 ,选择加星标 精彩内容不迷路 出品 | 程序人生(ID:coder _life) 7月16日,北京知识产权法院在官方微信发文称,该院日前审结了一起与"自 ...
- 索赔 5 千万!腾讯起诉微信自动抢红包软件
(给技术最前线加星标,每天看技术热点) 转自:红网,整理自:中国青年报.知产北京.每日经济新闻.北京电视台等 抢红包你还在拼手速吗? 近日,一个腾讯起诉"微信自动抢红包"软件运营者 ...
- Android实现微信自动抢红包的程序
简单实现了微信自动抢红包的服务,原理就是根据关键字找到相应的View, 然后自动点击.主要是用到AccessibilityService这个辅助服务,基本可以满足自动抢红包的功能,但是有些逻辑需要优化 ...
- Android 微信自动抢红包(源码以及apk下载可以参考末文)
微信自动抢红包 一.调试环境搭建: 二.具体代码实现可以参考:https://github.com/xiaxiaxa/RedWechat (近期整理并且debug的一个基础版本) 一.调试环境搭建: ...
最新文章
- 还有多久才能用上2000元以下的5G手机?答案来了
- wps多人协作后怎么保存_蜂蜜开封后能放多久?蜂蜜开封后怎么保存?蜂蜜存放要注意事项...
- mui的学习图片预览
- 指针结构体函数-事实上能够这样具体理解
- oracle 31640,导数据时ora-31640报错
- django select option拼接时value中空格后的内容被截断
- HTK---语音识别实现应用的Kit
- 快启动win10pe制作详细图文教程
- 高通驱动程序开发参考(一)
- python 横向拼接_python实现横向拼接图片
- C语言算法题:一只小蜜蜂...
- 关于测速MB/S,Mb/S,KB/s的区别
- 【宇麦科技】腾xun云登场,群晖NAS自定义域名教程来啦~
- 无法加载操作系统,原因是关键系统驱动驱动程序丢失或包含错误 kisboot.sys
- 百度网盘搜索引擎神器哪些网站比较好用
- service层的作业+mybatis中的重要组件
- adb install 安装APK Failure INSTALL_FAILED_ALREADY_EXISTS Attempt to re-install without first
- Android动画之旅-Android动画基本介绍
- GDUT 排位赛2.19 G
- Reflections 使用大坑
热门文章
- python实现凯撒密码、凯撒加解密算法
- 得物 API 一站式协作平台探索与落地
- 2018 Unreal Open Day参会总结
- 计算机中关于数符的表示方法
- rtx3090能组成超级计算机吗,惊人的核心怎么来的?RTX3090架构魔术揭秘
- 【系统架构设计师】计算机组成与体系结构 ① ( 计算机组成 | CPU | 存储器 | 总线 | IO 外设 | CPU 组成 | 运算器 | 控制器 )
- WEB3D 控件更新流程
- 通识(1)—模拟、(射频)、器件、数字、FPGA—简介
- securecrt传输mysql安装包_用SecureCRT来上传和下载文件
- 2020广东工业大学810自控原理参考答案