又想起快要过年了qq协议代挂抢红包脚本,到时候还不知道群里要发很多红包,所以我将之前在网上宕的一份陌陌抢红包的代码更改了一下,实现了QQ抢红包!可以支持抢QQ拼手气红包,普通红包,口令红包,现在再也不怕20年独身手速的人和我抢红包了!

先看检测效果图:

1.抢QQ口令红包

可以看到,只要红包一发出,自动填写口令并发出,帮你将红包买到手!

2.抢QQ拼手气红包

拼手气红包只是一样,只要红包一发出,自动帮你把红包买到手,是不是挺爽的觉得?

3.抢QQ好友发送的红包

只要好友或则群里的人把红包一发出,就会第一时间使你买到红包!所以只要在群上面开启插件,抢红包从来都是百发百中!好了屁话不多说了,也不自夸有多牛多好了,下面直接给你们上代码:

MainActivity:

/*MainActivity中的代码基本没改变:*/

public class MainActivity extends AppCompatActivity {

private final Intent mAccessibleIntent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);

private Button switchPlugin;

@Overrideprotected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

switchPlugin = (Button) findViewById(R.id.button_accessible);

updateServiceStatus();

}

/*开启插件的按钮*/

public void onButtonClicked(View view) {startActivity(mAccessibleIntent);}

@Overrideprotected void onResume() {

super.onResume();

updateServiceStatus();

}

}

private void updateServiceStatus() {

boolean serviceEnabled = false;

AccessibilityManager accessibilityManager = (AccessibilityManager) getSystemService(Context.ACCESSIBILITY_SERVICE);

List accessibilityServices = accessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_GENERIC);

for (AccessibilityServiceInfo info : accessibilityServices) {

if (info.getId().equals(getPackageName() + "/.QQHongbaoService")) {

serviceEnabled = true;

break;

}

}

if (serviceEnabled) {

switchPlugin.setText("关闭插件");

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

} else {

switchPlugin.setText("开启插件");

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);}

}

}

这里是MainActivity中的全部代码,是不是极少的样子,主要是实现了一个按键去开启ACCESSIBILITY_SERVICE。这个插件主要就是利用AccessibilityService这个服务来实现。所以剩下的代码就都在这个服务中了!

QQHongbaoService:

public class QQHongbaoService extends AccessibilityService {

private static final String WECHAT_OPEN_EN = "Open";

private static final String WECHAT_OPENED_EN = "You've opened";

private final static String QQ_DEFAULT_CLICK_OPEN = "点击拆开";

private final static String QQ_HONG_BAO_PASSWORD = "口令红包";

private final static String QQ_CLICK_TO_PASTE_PASSWORD = "点击输入口令";

private boolean mLuckyMoneyReceived;

private String lastFetchedHongbaoId = null;

private long lastFetchedTime = 0;

private static final int MAX_CACHE_TOLERANCE = 5000;

private AccessibilityNodeInfo rootNodeInfo;

private List mReceiveNode;

@TargetApi(Build.VERSION_CODES.KITKAT)

public void recycle(AccessibilityNodeInfo info) {

if (info.getChildCount() == 0) {

/*这个if代码的作用是:匹配“点击输入口令的节点,并点击这个节点”*/

if(info.getText()!=null&&info.getText().toString().equals(QQ_CLICK_TO_PASTE_PASSWORD)) {

info.getParent().performAction(AccessibilityNodeInfo.ACTION_CLICK);

}

/*这个if代码的作用是:匹配文本编辑框后面的发送按钮,并点击发送口令*/

if (info.getClassName().toString().equals("android.widget.Button") && info.getText().toString().equals("发送")) {

info.performAction(AccessibilityNodeInfo.ACTION_CLICK);

}

} else {

for (int i = 0; i 0) {

String id = getHongbaoText(mReceiveNode.get(size - 1));

long now = System.currentTimeMillis();

if (this.shouldReturn(id, now - lastFetchedTime))

return;

lastFetchedHongbaoId = id;

lastFetchedTime = now;

AccessibilityNodeInfo cellNode = mReceiveNode.get(size - 1);

if (cellNode.getText().toString().equals("口令红包已拆开")) {

return;

}

cellNode.getParent().performAction(AccessibilityNodeInfo.ACTION_CLICK);

if (cellNode.getText().toString().equals(QQ_HONG_BAO_PASSWORD)) {

AccessibilityNodeInfo rowNode = getRootInActiveWindow();

if (rowNode == null) {

Log.e(TAG, "noteInfo is null");

return;

} else {

recycle(rowNode);

}

}

mLuckyMoneyReceived = false;

}

}

}

private void checkNodeInfo() {

if (rootNodeInfo == null) {

return;

}

/* 聊天会话窗口,遍历节点匹配“点击拆开”,“口令红包”,“点击输入口令” */

List nodes1 = this.findAccessibilityNodeInfosByTexts(this.rootNodeInfo, new String[]{QQ_DEFAULT_CLICK_OPEN, QQ_HONG_BAO_PASSWORD, QQ_CLICK_TO_PASTE_PASSWORD, "发送"});

if (!nodes1.isEmpty()) {

String nodeId = Integer.toHexString(System.identityHashCode(this.rootNodeInfo));

if (!nodeId.equals(lastFetchedHongbaoId)) {

mLuckyMoneyReceived = true;

mReceiveNode = nodes1;

} return;

}

}

private String getHongbaoText(AccessibilityNodeInfo node) {

/* 获取红包上的文本 */

String content;

try {

AccessibilityNodeInfo i = node.getParent().getChild(0);

content = i.getText().toString();

} catch (NullPointerException npe) {

return null;

}

return content;

}

private boolean shouldReturn(String id, long duration) {

// ID为空

if (id == null) return true;

// 名称和缓存不一致

if (duration

QQHongbaoService的全部代码也在这里,代码不多。首先,在这个服务中主要是通过findAccessibilityNodeInfosByText这个办法去获我们还要的节点;然后用performAction(AccessibilityNodeInfo.ACTION_CLICK)这个办法去点击红包节点,关键思路大约就是那样!另外假如是口令红包,我们还要先根据前面的方法将红包戳开,然后通过performAction(AccessibilityNodeInfo.ACTION_CLICK)去点击键入口令,最后再通过点击去发送即可实现!QQHongbaoService还要在AndroidManifest.xml文件中注册,

注册的节点如下图:

总体来看,只是将陌陌抢红包的代码做了少量的更改,在这里要谢谢诸位前辈对陌陌抢红包源码的贡献!最后也希望这篇文章能给你们有所帮助,在抢红包大战中虐死独身犬qq协议代挂抢红包脚本,再也不怕你20年的独身手速了!!!

c语言写抢QQ红包软件,Android实现QQ抢红包插件相关推荐

  1. qq空间 for android,手机QQ空间Android新版发布 支持widget

    近日,腾讯正式发布手机QQ空间Android平台1.2版,新增了10多项常用新功能,体验方面有多达20多个专项优化,界面焕然一新.它大幅完善了手机QQ空间的写日志.带图说说功能,还实现了手机桌面wid ...

  2. android qq分组展开,Android仿qq分组管理的第三方库

    本文实例为大家分享了Android仿qq分组管理的第三方库,供大家参考,具体内容如下 下面先看效果 我们点击展开与折叠分组的功能在库里面是已经封装好的,只能把它已入到项目中,就可以直接用了,十分的方便 ...

  3. android群聊红包原理,Android之微信抢红包实现原理分析

    微信抢红包主要用到AccessibilityService,该服务需要用户手动到辅助功能里面授权,下面直接粘贴源码,先看Activity,主要是跳转到辅助功能界面,让用户开启辅助功能的服务: publ ...

  4. android 仿qq录音动画,Android实现QQ点赞效果动画 Android动画

    版权声明:本文为代码部落原创文章,转载请注明出处. 前言 点赞是现在社交app中比较常用的功能,一个小小的点赞按钮如果能加上一些有趣动画,一来告诉用户你已经点了赞(这是对一些手残党极大的福音),二来人 ...

  5. android微信的抢红包插件

    前言   之前看到了微信抢红包的插件,觉得这个功能实在强大了,这和之前我想实现的模拟点击事件基本相似,可以完美的触发一个view的点击事件,当然静默安装的原理也和抢红包的原理是一样的.   小米有开源 ...

  6. c语言怎么表示字节集,用易语言写一个电子钢琴软件

    这只是一个窗口程序集,是整个软件的一部分,算是核心吧 易语言不同于C语言.java,易语言是全中文编写,说实话,我感觉中文编写还不如英文编写顺手.我感觉最简单的还是我当初自己学的Python语言. 下 ...

  7. C语言写的一个攻击软件,可以让玩游戏的室友网络延迟最少1秒

    /*Name: attack 攻击软件 Copyright: Author: 折竹 Date: 05/03/19 08:40Description: */#include <stdio.h> ...

  8. android里qq登录界面,Android仿QQ登陆窗口实现原理

    今天根据腾讯qq,我们做一个练习,来学习如何制作一个漂亮的布局.首先看一下官方图片 还是一个启动画面,之后进入登录页面,导航页面就不介绍了,大家可以参考微信的导航页面.首先程序进入SplashActi ...

  9. android qq右上加号,Android 模拟QQ空间小加号+用popupWindow制作spinner

    最近做了个小案例,关于弹出窗口的.TAT 总感觉自己速度好慢啊~果然是不熟练!还是要多练! 首先我参考了网上的源码,发现居然有popupwindow这类神奇的东西,本来是想用对话框或者参考spinne ...

最新文章

  1. python asyncio与aiohttp_python链家网异步IO爬虫,使用asyncio、aiohttp和aiomysql
  2. go 向buff写入一个字节_我在 Go 中犯的 5 个错误
  3. ecshop 广告设置
  4. linux mongo 服务器,如何用MongoDB在Linux服务器上创建大量连接和线程的记忆
  5. 通过Python让数据产生价值,做到这4个字就够了
  6. linux_adduser
  7. 如何在Python中打印异常?
  8. bzoj 4033: [HAOI2015]树上染色(树形DP)
  9. Android签名证书生成
  10. buildroot external-toolchain的一次踩坑经历
  11. EJB2.0雨夜教程之一
  12. MATLAB | 绘图复刻(二) | 折线图+误差棒+柱状图+散点抖动+灰色背景+图片叠加
  13. oracle rman crosscheck,rman的crosscheck命令
  14. jQuery动画+实例
  15. redis安装(主从)
  16. 计算机科学家证书,软件自动验证的追梦者——吴志林,2020年CCF-IEEE CS青年科学家奖获得者...
  17. 前端工程化 - 剖析npm的包管理机制
  18. AI算法 - 抽样方法
  19. linux u盘文件乱码,轻松解决Linux下U盘乱码的方法
  20. 搜索引擎排名不等于网站的优化

热门文章

  1. 【转载】快速入门(完整):Python实例100个(基于最新Python3.7版本)
  2. 分享一个超nice的数据分析实战案例, “手把手”教学,收藏等于学会
  3. python批量压缩图片_Python图片批量压缩到指定大小并将JPG转为PNG格式
  4. cannon的英文名_卡农的作者是谁啊 此曲的赏析 英文名cannon不是大炮吗
  5. 计算机中心冷风通道,数据中心机房散热冷通道热通道问题分析
  6. 微信小程序商城开发-商品详情页跳转购物车
  7. Linux——进程管理(crontab实例傻瓜教程)
  8. OpenResty+Lua实现WAF防火墙
  9. 网络系统实现技术--AppleTalk
  10. 阿里云-云开发平台存储篇——给应用接上后端存储能力