c语言写抢QQ红包软件,Android实现QQ抢红包插件
又想起快要过年了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抢红包插件相关推荐
- qq空间 for android,手机QQ空间Android新版发布 支持widget
近日,腾讯正式发布手机QQ空间Android平台1.2版,新增了10多项常用新功能,体验方面有多达20多个专项优化,界面焕然一新.它大幅完善了手机QQ空间的写日志.带图说说功能,还实现了手机桌面wid ...
- android qq分组展开,Android仿qq分组管理的第三方库
本文实例为大家分享了Android仿qq分组管理的第三方库,供大家参考,具体内容如下 下面先看效果 我们点击展开与折叠分组的功能在库里面是已经封装好的,只能把它已入到项目中,就可以直接用了,十分的方便 ...
- android群聊红包原理,Android之微信抢红包实现原理分析
微信抢红包主要用到AccessibilityService,该服务需要用户手动到辅助功能里面授权,下面直接粘贴源码,先看Activity,主要是跳转到辅助功能界面,让用户开启辅助功能的服务: publ ...
- android 仿qq录音动画,Android实现QQ点赞效果动画 Android动画
版权声明:本文为代码部落原创文章,转载请注明出处. 前言 点赞是现在社交app中比较常用的功能,一个小小的点赞按钮如果能加上一些有趣动画,一来告诉用户你已经点了赞(这是对一些手残党极大的福音),二来人 ...
- android微信的抢红包插件
前言 之前看到了微信抢红包的插件,觉得这个功能实在强大了,这和之前我想实现的模拟点击事件基本相似,可以完美的触发一个view的点击事件,当然静默安装的原理也和抢红包的原理是一样的. 小米有开源 ...
- c语言怎么表示字节集,用易语言写一个电子钢琴软件
这只是一个窗口程序集,是整个软件的一部分,算是核心吧 易语言不同于C语言.java,易语言是全中文编写,说实话,我感觉中文编写还不如英文编写顺手.我感觉最简单的还是我当初自己学的Python语言. 下 ...
- C语言写的一个攻击软件,可以让玩游戏的室友网络延迟最少1秒
/*Name: attack 攻击软件 Copyright: Author: 折竹 Date: 05/03/19 08:40Description: */#include <stdio.h> ...
- android里qq登录界面,Android仿QQ登陆窗口实现原理
今天根据腾讯qq,我们做一个练习,来学习如何制作一个漂亮的布局.首先看一下官方图片 还是一个启动画面,之后进入登录页面,导航页面就不介绍了,大家可以参考微信的导航页面.首先程序进入SplashActi ...
- android qq右上加号,Android 模拟QQ空间小加号+用popupWindow制作spinner
最近做了个小案例,关于弹出窗口的.TAT 总感觉自己速度好慢啊~果然是不熟练!还是要多练! 首先我参考了网上的源码,发现居然有popupwindow这类神奇的东西,本来是想用对话框或者参考spinne ...
最新文章
- python asyncio与aiohttp_python链家网异步IO爬虫,使用asyncio、aiohttp和aiomysql
- go 向buff写入一个字节_我在 Go 中犯的 5 个错误
- ecshop 广告设置
- linux mongo 服务器,如何用MongoDB在Linux服务器上创建大量连接和线程的记忆
- 通过Python让数据产生价值,做到这4个字就够了
- linux_adduser
- 如何在Python中打印异常?
- bzoj 4033: [HAOI2015]树上染色(树形DP)
- Android签名证书生成
- buildroot external-toolchain的一次踩坑经历
- EJB2.0雨夜教程之一
- MATLAB | 绘图复刻(二) | 折线图+误差棒+柱状图+散点抖动+灰色背景+图片叠加
- oracle rman crosscheck,rman的crosscheck命令
- jQuery动画+实例
- redis安装(主从)
- 计算机科学家证书,软件自动验证的追梦者——吴志林,2020年CCF-IEEE CS青年科学家奖获得者...
- 前端工程化 - 剖析npm的包管理机制
- AI算法 - 抽样方法
- linux u盘文件乱码,轻松解决Linux下U盘乱码的方法
- 搜索引擎排名不等于网站的优化
热门文章
- 【转载】快速入门(完整):Python实例100个(基于最新Python3.7版本)
- 分享一个超nice的数据分析实战案例, “手把手”教学,收藏等于学会
- python批量压缩图片_Python图片批量压缩到指定大小并将JPG转为PNG格式
- cannon的英文名_卡农的作者是谁啊 此曲的赏析 英文名cannon不是大炮吗
- 计算机中心冷风通道,数据中心机房散热冷通道热通道问题分析
- 微信小程序商城开发-商品详情页跳转购物车
- Linux——进程管理(crontab实例傻瓜教程)
- OpenResty+Lua实现WAF防火墙
- 网络系统实现技术--AppleTalk
- 阿里云-云开发平台存储篇——给应用接上后端存储能力