为什么单反照片删不了在电脑

you have been blocked分类排行榜
作者:守护袁昆
作者:木木博客
作者:木木
作者:何杨
作者:何杨
安全、高效、便捷的交易中介平台
中小企业首选SEO、全网营销服务
技术外包平台 一站式网站技术服务
高收益、移动广告、弹窗CPM
做有良心的cms技术服务提供商
提供公众号出售、求购、代售等交易中介以及增值服务。
增值电信业务经营许可证:苏B2-
编辑热线:6-808
A5创业网 版权所有.
扫一扫关注最新创业资讯最近要过年了,各种红包很火,可惜可怜的程序员手机不好呀,无奈到网上寻找抢红包源码,功夫不负有心人,终于。。。。。。
android 制作图标工具&http://romannurik.github.io/AndroidAssetStudio/index.html
以下内容为转载
-------------------------------------------------------------------------------------------------------------------
原文地址:
QQ抢红包插件实现
&&& | &&分类于&
之前跟那些20年的单身狗抢红包是屡战屡败。再加上最近群里面发红包发的厉害,又想到快要过年了,到时候还不知道群里要发好多红包,所以我将之前在网上宕的一份微信抢红包的代码修改了一下,实现了QQ抢红包!可以支持抢QQ拼手气红包,普通红包,口令红包,现在再也不怕20年单身手速的人跟我抢红包了!
先看测试效果图:
抢QQ口令红包:
可以看见,只要红包一发出,自动填写口令并发出,帮你将红包抢到手!
抢QQ拼手气红包:
拼手气红包也是一样,只要红包一发出,自动帮你把红包抢到手,是不是很爽的感觉?
抢QQ好友发送的红包:
只要好友或者群里的人把红包一发出,就会第一时间让你抢到红包!
所以只要在群里面开启插件,抢红包从来都是百发百中!
好了废话不多说了,也不吹嘘有多牛多好了,下面直接给大家上代码:
MainActivity:
/*MainActivity中的代码基本没改变:*/
public class MainActivity extends AppCompatActivity {
private final Intent mAccessibleIntent =
new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
private Button switchP
/*onCreate*/
@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 =
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 =
if (serviceEnabled) {
switchPlugin.setText(&关闭插件&);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
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 mLuckyMoneyR
private String lastFetchedHongbaoId =
private long lastFetchedTime = 0;
private static final int MAX_CACHE_TOLERANCE = 5000;
private AccessibilityNodeInfo rootNodeI
private List&AccessibilityNodeInfo& mReceiveN
@TargetApi(Build.VERSION_CODES.KITKAT)
public void recycle(AccessibilityNodeInfo info) {
if (info.getChildCount() == 0) {
if (info.getText() != null && info.getText().toString().equals(QQ_CLICK_TO_PASTE_PASSWORD)) {
info.getParent().performAction(AccessibilityNodeInfo.ACTION_CLICK);
if (info.getClassName().toString().equals(&android.widget.Button&) && info.getText().toString().equals(&发送&)) {
info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
for (int i = 0; i & info.getChildCount(); i++) {
if (info.getChild(i) != null) {
recycle(info.getChild(i));
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void onAccessibilityEvent(AccessibilityEvent event) {
this.rootNodeInfo = event.getSource();
if (rootNodeInfo == null) {
mReceiveNode =
checkNodeInfo();
/* 如果已经接收到红包并且还没有戳开 */
if (mLuckyMoneyReceived && (mReceiveNode != null)) {
int size = mReceiveNode.size();
if (size & 0) {
String id = getHongbaoText(mReceiveNode.get(size - 1));
long now = System.currentTimeMillis();
if (this.shouldReturn(id, now - lastFetchedTime))
lastFetchedHongbaoId =
lastFetchedTime =
AccessibilityNodeInfo cellNode = mReceiveNode.get(size - 1);
if (cellNode.getText().toString().equals(&口令红包已拆开&)) {
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&);
recycle(rowNode);
mLuckyMoneyReceived =
* 检查节点信息
private void checkNodeInfo() {
if (rootNodeInfo == null) {
/* 聊天会话窗口,遍历节点匹配“点击拆开”,“口令红包”,“点击输入口令” */
List&AccessibilityNodeInfo& 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 =
mReceiveNode = nodes1;
* 将节点对象的id和红包上的内容合并
* 用于表示一个唯一的红包
* @param node 任意对象
* @return 红包标识字符串
private String getHongbaoText(AccessibilityNodeInfo node) {
/* 获取红包上的文本 */
AccessibilityNodeInfo i = node.getParent().getChild(0);
content = i.getText().toString();
} catch (NullPointerException npe) {
* 判断是否返回,减少点击次数
* 现在的策略是当红包文本和缓存不一致时,戳
* 文本一致且间隔大于MAX_CACHE_TOLERANCE时,戳
* @param id
* @param duration 红包到达与缓存的间隔
* @return 是否应该返回
private boolean shouldReturn(String id, long duration) {
if (id == null)
// 名称和缓存不一致
if (duration & MAX_CACHE_TOLERANCE && id.equals(lastFetchedHongbaoId)) {
* 批量化执行AccessibilityNodeInfo.findAccessibilityNodeInfosByText(text).
* 由于这个操作影响性能,将所有需要匹配的文字一起处理,尽早返回
* @param nodeInfo 窗口根节点
* @param texts
需要匹配的字符串们
* @return 匹配到的节点数组
private List&AccessibilityNodeInfo& findAccessibilityNodeInfosByTexts(AccessibilityNodeInfo nodeInfo, String[] texts) {
for (String text : texts) {
if (text == null)
List&AccessibilityNodeInfo& nodes = nodeInfo.findAccessibilityNodeInfosByText(text);
if (!nodes.isEmpty()) {
if (text.equals(WECHAT_OPEN_EN) && !nodeInfo.findAccessibilityNodeInfosByText(WECHAT_OPENED_EN).isEmpty()) {
return new ArrayList&&();
public void onInterrupt() {
QQHongbaoService的全部代码也在这里,代码不多。首先,在这个服务中主要是通过findAccessibilityNodeInfosByText这个方法去获我们需要的节点;然后,用performAction(AccessibilityNodeInfo.ACTION_CLICK)&这个方法去点击红包节点,关键思路大概就是这样!
另外如果是口令红包,我们需要先按照上面的步骤将红包戳开,然后通过performAction(AccessibilityNodeInfo.ACTION_CLICK)去点击输入口令,最后再通过点击去发送即可实现!
QQHongbaoService需要在AndroidManifest.xml文件中注册,
注册的节点如下图:
总体来看,只是将微信抢红包的代码做了少量的修改,在这里要感谢各位大神对微信抢红包源码的贡献!最后也希望这篇文章能给大家有所帮助,在抢红包大战中虐死单身狗,再也不怕你20年的单身手速了!!!
-------------------------------------------------------------------------------------------------------------------
原文地址:http://blog.csdn.net/feifei/article/details/
&35539人阅读&&&
Android(58)&
CodeBoy微信抢红包外挂
源码下载地址:
apk下载地址
Codeboy微信抢红包是我在2015年春节过年期间编写的一个开源的兴趣项目,只要是将整个核心抢红包的流程编写出来,至于再复杂的一些操作就没深入研究。当这个项目发布后,也是反应挺大的,很多网友也找到我了与交流,也有做淘宝的人给钱让我去增加一些功能,当然我是拒绝的。
在这里,我声明一下,我所做的是自己有兴趣的事情,只是通过开源的方式让大家去学习相关技术,并不是为了营利,而我也知道淘宝上有人直接拿我的应用去售卖,这些都是没经过我的允许,我也没有半点收益,我留下联系方式是为了方便开发者之间的讨论与学习,所以请商业合作的与小白不要加我QQ,谢谢。
一开始大家都会觉得做一个Android外挂会汲取很多东西或者底层的东西,但当发现Android里有一个叫AccessibilityService的服务时,一切都变得很简单。
关于AccessibilityService
先看看官网的介绍Accessibility
Many Android users have different abilities that require them to interact with their Android devices in different ways. These include users who have visual, physical or age-related limitations that prevent them from fully seeing or using a touchscreen, and
users with hearing loss who may not be able to perceive audible information and alerts...
上面大概的意思就是Accessibility是一个辅助服务,主要是面向一些使用Android手机的用户有相关障碍(年龄、视觉、听力、身体等),这个功能可以更容易使用手机,可以帮用户在点击屏幕或者显示方面得到帮助等等。接下来就是查找相关API,看能做到哪个地步。
当然accessibility除了可以辅助点击界面的事件外,还可以用作自动化测试,或者一键返回,是一个非常强大与实用的功能,具体实例可以看我另一个App虚拟按键助手&请往下载&&或&。
关于抢红包的流程
在有以上的一些关于辅助服务的基础知识后,我们就可以分析怎样自动化抢红包。 大家使用过微信都知道,如果不是在微信的可见界面范围(在桌面或者在使用其它应用时),在收到新的消息,就会在通知栏提醒用户。而在微信的消息列表界面,就不会弹出通知栏,所以可以区分这两种情况。然后抓取相关关键字作进一步处理。
1、在非微信消息列表界面,收到通知消息的事件,判断通知栏里的文本是否有[微信红包]的关键字,有则可以判断为用户收到红包的消息(当然,你可以故意发一条包括这个关键字的文本消息去整蛊你的朋友)。然后,我们就自动化触发这个消息的意图事件(Intent);
2、在通知栏跳进微信界面后,是去到com.tencent.mm.ui.LauncherUI这个Activity界面。我们知道,红包的消息上,包括了关键字领取红包或者View的id,那我们就根据这个关键字找到相应的View,然后再触发ACTION_CLICK(点击事件);
3、在点击红包后,会跳到com.tencent.mm.plugin.luckymoney.ui.LuckyMoneyReceiveUI这个拆红包的Activity,当然老方法,找关键字拆红包或id,然后触发自动化点击事件。
这样就可以完成整个自动化完成抢红包的流程了,所以核心就是找关键字,然后模拟用户点击事件,就这么简单。以下详细说一下代码的实现。
以下是通过DDMS工具里的Dump
View Hierarchy For UI Automator&去分析微信UI结构。
使用AccessibilityService去一步步监听微信的动作
1、新建一个继承AccessibilityService的类,如QiangHongBaoService,然后在AndroidManifest.xml里声明组件,如下
android:label=&@string/app_name&
android:name=&.QiangHongBaoService&
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/qianghongbao_service_config&/&
&/service&
在meta-data里声明的是辅助配置,这个是Android4.0之后才支持的写法,在4.0之前的系统要在代码里声明。
2、在res/xml目录下生成辅助服务的配置文件qianghongbao_service_config.xml
&accessibility-service
xmlns:android=&/apk/res/android&
android:description=&@string/accessibility_description&
android:accessibilityEventTypes=&typeNotificationStateChanged|typeWindowStateChanged&
android:packageNames=&com.tencent.mm&
android:accessibilityFeedbackType=&feedbackGeneric&
android:notificationTimeout=&100&
android:accessibilityFlags=&&
android:canRetrieveWindowContent=&true&/&
android:description&这个是设置服务的描述,在用户授权的界面可以看到。
android:accessibilityEventTypes&这个是配置要监听的辅助事件,我们只需要用到typeNotificationStateChanged(通知变化事件)、typeWindowStateChanged(界面变化事件)
android:packageNames&这个是要监听应用的包名,如果要监听多个应用,则用,去分隔,这里我们只需要监听微信的就可以了
android:accessibilityFeedbackType&这个是设置反馈方式
FeedbackType
feedbackSpoken
feedbackHaptic
feedbackAudible
表示声音(不是语音)反馈
feedbackVisual
feedbackGeneric
feedbackAllMask
所有以上的反馈
3、在以上都配置好后,我们就可以在QiangHongBaoService这个服务里进行编码了,要做的就是将整个UI跳转流程与逻辑串联起来。
public void onAccessibilityEvent(AccessibilityEvent event) {
//接收事件,如触发了通知栏变化、界面变化等
protected boolean onKeyEvent(KeyEvent event) {
//接收按键事件
return super.onKeyEvent(event);
public void onInterrupt() {
//服务中断,如授权关闭或者将服务杀死
protected void onServiceConnected() {
super.onServiceConnected();
//连接服务后,一般是在授权成功后会接收到
具体内容请看源码
如何防止外挂
在了解整个核心后,获取事件不外乎就是通过文本与id判断,那么就可以将文本改为图标方式,将id改为动态id(每次显示都是随机生成),这样一来就可以提高外挂的门槛。
如何发红包会安全点
现在抢红包就看谁的外挂工具反应够快,如何去干扰这些外挂,其实也有点小技巧,就是在发红包前,发送文本[微信红包],可以导致部分外挂工具失效。
版权归作者所有,转载请注明出处:
英文名:Leon
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:120770次
积分:2187
积分:2187
排名:第15899名
原创:86篇
转载:94篇
评论:26条
(1)(1)(1)(1)(1)(1)(1)(2)(1)(3)(2)(2)(3)(6)(4)(1)(5)(1)(1)(3)(4)(1)(1)(1)(10)(5)(12)(25)(19)(17)(4)(7)(3)(10)(3)(11)(6)当前位置:
> 帖子正文
大神们好,请问有会抓包下载历史版本软件吗,可以微信红包,我研究了一下午还是没弄好
RT,确定安装可用可以微信发红包,7P10.2未越狱,工作原因需要一个软件的历史版本
不吐不快,我来说两句...
暂时没有回复
您需要注册登录后,才能回帖哦!
参考价:¥5899
上市时间:2017.05
上市时间:2016.09
上市时间:2015.09
上市时间:2017.02
上市时间:2017.05
上市时间:2016.08
上市时间:2017.02
上市时间:2016.09
上市时间:2015.09
上市时间:2016.12
上市时间:2016.09
上市时间:2017.05
上市时间:2017.04
上市时间:2017.03
上市时间:2017.02
上市时间:2017.04
上市时间:2017.04
上市时间:2017.05
上市时间:2017.05
上市时间:2017.02
上市时间:2017.04
上市时间:2017.05
上市时间:2017.04
上市时间:2017.05
上市时间:2017.05
上市时间:2017.03
上市时间:2017.04
上市时间:2017.04
上市时间:2017.04
上市时间:2017.05}

我要回帖

更多关于 单反照片怎么传电脑 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信