抢红包微信抢红包怎么隐身显示的是另一个人?替身?隐身?代码还是挂??

最新碎语:悠闲的日子~~~
您的位置: && AccessibilityService之微信抢红包辅助功能实现
这次我们来使用AccessibilityService实现一个微信抢红包的辅助工具。
先来一个简单的效果图,最后会有一个完整的效果图:
首先,先回想一下微信红包的领取流程。
1.通知栏出现微信红包的消息
2.点击通知栏,进入领取红包界面
3.点击领取红包,领取成功后,进入拆红包界面
4.拆红包,显示获得金额
5.等待下一个红包
那么根据之前学到的关于AccessibilityService的知识可以这样填写配置文件:
&&&&&&&&&&& android:name="krelve.demo.rob.RobMoney"
&&&&&&&&&&& android:enabled="true"
&&&&&&&&&&& android:exported="true"
&&&&&&&&&&& android:label="@string/app_name"
&&&&&&&&&&& 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/rob_service_config" /&
&/service&
AccessibilityService的相关配置 xml/rob_service_config:
&accessibility-service xmlns:android=""
&&& android:accessibilityEventTypes="typeNotificationStateChanged|typeWindowStateChanged"
&&& android:accessibilityFeedbackType="feedbackGeneric"
&&& android:accessibilityFlags="flagDefault"
&&& android:canRetrieveWindowContent="true"
&&& android:description="@string/accessibility_description"
&&& android:notificationTimeout="100"
&&& android:packageNames="com.tencent.mm" /&
由于我们这里只需要监听微信产生的事件,所以packageNames属性应当填写微信的包名。
下面便是最重要的抢红包代码:
package krelve.demo.
import java.util.L
import android.accessibilityservice.AccessibilityS
import android.annotation.SuppressL
import android.app.N
import android.app.PendingI
import android.app.PendingIntent.CanceledE
import android.view.accessibility.AccessibilityE
import android.view.accessibility.AccessibilityNodeI
public class RobMoney extends AccessibilityService {
&@Override
&public void onAccessibilityEvent(AccessibilityEvent event) {
&&int eventType = event.getEventType();
&&switch (eventType) {
&&case AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED:// 通知栏事件
&&&List&CharSequence& texts = event.getText();
&&&if (!texts.isEmpty()) {
&&&&for (CharSequence text : texts) {
&&&&&String content = text.toString();
&&&&&if (content.contains("[微信红包]")) {
&&&&&&// 监听到微信红包的notification,打开通知
&&&&&&if (event.getParcelableData() != null
&&&&&&&&&& event.getParcelableData() instanceof Notification) {
&&&&&&&Notification notification = (Notification) event
&&&&&&&&&.getParcelableData();
&&&&&&&PendingIntent pendingIntent = notification.contentI
&&&&&&&try {
&&&&&&&&pendingIntent.send();
&&&&&&&} catch (CanceledException e) {
&&&&&&&&e.printStackTrace();
&&case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED:
&&&String className = event.getClassName().toString();
&&&if (className.equals("com.tencent.mm.ui.LauncherUI")) {
&&&&getPacket();// 领取红包
&&&} else if (className
&&&&&.equals("com.tencent.mm.plugin.luckymoney.ui.LuckyMoneyReceiveUI")) {
&&&&openPacket();// 打开红包
&@SuppressLint("NewApi")
&private void openPacket() {
&&AccessibilityNodeInfo nodeInfo = getRootInActiveWindow();
&&if (nodeInfo != null) {
&&&List&AccessibilityNodeInfo& list = nodeInfo
&&&&&.findAccessibilityNodeInfosByText("拆红包");
&&&for (AccessibilityNodeInfo n : list) {
&&&&n.performAction(AccessibilityNodeInfo.ACTION_CLICK);
&@SuppressLint("NewApi")
&private void getPacket() {
&&AccessibilityNodeInfo rootNode = getRootInActiveWindow();
&&if (rootNode != null) {
&&&List&AccessibilityNodeInfo& nodeInfos = rootNode
&&&&&.findAccessibilityNodeInfosByText("领取红包");
&&&for (AccessibilityNodeInfo nodeInfo : nodeInfos) {
&&&&nodeInfo.performAction(AccessibilityNodeInfo.ACTION_CLICK);
&@Override
&public void onInterrupt() {
在onAccessibilityEvent中,监听AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED和AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED事件。如果是通知栏事件,那么获取通知事件的text,如果包含 [微信红包] 字样,则说明是一个红包的通知事件。
然后通过event.getParcelableData()获取Notification实例对象,调用其中的pendingintent即可。
通知栏响应事件就是打开领取红包的界面,自己写了一个模拟微信红包的demo,来方便测试。
处理完通知栏事件后,就是窗体事件了。
进入领取红包界面后,如何找到领取红包的点击按钮并实现点击呢?
1.确定当前窗体界面是领取红包界面:event.getClassName().toString() 通过判断className来确定
2.AccessibilityNodeInfo 中有这样一个方法:findAccessibilityNodeInfosByText()
所以可以通过寻找 领取红包 字样来找到领取红包的点击事件。
AccessibilityNodeInfo rootNode = getRootInActiveWindow();
&&if (rootNode != null) {
&&&List&AccessibilityNodeInfo& nodeInfos = rootNode
&&&&&.findAccessibilityNodeInfosByText("领取红包");
&&&for (AccessibilityNodeInfo nodeInfo : nodeInfos) {
&&&&nodeInfo.performAction(AccessibilityNodeInfo.ACTION_CLICK);
这样就可以实现领取红包的点击。
既然已经获得红包,那么就要拆红包了。
类似领红包,拆红包只是类名和搜索的text不一样而已:
AccessibilityNodeInfo nodeInfo = getRootInActiveWindow();
&&if (nodeInfo != null) {
&&&List&AccessibilityNodeInfo& list = nodeInfo
&&&&&.findAccessibilityNodeInfosByText("拆红包");
&&&for (AccessibilityNodeInfo n : list) {
&&&&n.performAction(AccessibilityNodeInfo.ACTION_CLICK);
&这样就实现了一个最基本的抢红包辅助工具,剩下的细节可以慢慢实现。
最后看一下最终的效果图:
转载请注明本文标题和链接:《》
邮箱(必填)
网址(选填)
&&&&35.64ms微信抢红包神器的实现原理是什么?
看到大家回答的都是红包分配的算法,是我问题描述不清吗?我想问的是自动抢红包插件的实现原理啊! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 网友回复: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 网友回复: -------------------------------------------------------------------
微信抢红包神器的实现原理是什么?
【微信抢红包神器的实现原理是什么?】
请将本文分享给你的朋友:
微信抢红包神器的实现原理是什么? 的相关文章
------分隔线----------------------------
北京联盟郑重声明:本文仅代表作者个人观点,与北京联盟无关。其原创性及文中陈述内容未经本站证实,北京联盟对本文及其中全部或者部分内容的真实性、完整性、及时性不作任何保证和承诺,请网友自行核实相关内容。微信怎么自动抢红包?挂有么?微信抢红包小助手?_百度知道
提问者采纳
下载了,还真的是免费的!提手速了哈哈!谢谢哈!知道了关注:wz-zdxq
提问者评价
谢谢!关注:wz-zdxq
其他类似问题
为您推荐:
抢红包的相关知识
其他4条回答
没有才奇怪,蒙娜丽莎的微笑是最美的
亲爱的小伙伴,还是软件技术辅助下控制红包的大小尾数啦,帮助你抢到红包的手气最佳了,好的挂一般都是要好用易用的啦,有好过没有咯,不要让自己吃亏就行的啦!!
微信抢红包要用好的红包软件,不然买到市面上的假的软件,不仅赔了钱,而且还存在资金被盗的风险。牛牛红包软件货真价实,你还在等什么呢!
手速这东西真心不能指望红包自己送上来,最好是用上高级的软件或者挂之类帮自动的抢。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁&2015 全球贝者娱乐科技有限公司 版权所有&&&
技术支持:&&&&访问量:21153以上信息由该企业自行提供,该企业负责信息内容的真实性、准确性和合法性。KK商务网对此不承担任何保证责任,请慎重选择交易对象以防被骗。

我要回帖

更多关于 微信抢红包怎么隐身 的文章

 

随机推荐