Android实现微信自动抢红包的程序.docx

上传人:b****1 文档编号:14185615 上传时间:2023-06-21 格式:DOCX 页数:11 大小:17.12KB
下载 相关 举报
Android实现微信自动抢红包的程序.docx_第1页
第1页 / 共11页
Android实现微信自动抢红包的程序.docx_第2页
第2页 / 共11页
Android实现微信自动抢红包的程序.docx_第3页
第3页 / 共11页
Android实现微信自动抢红包的程序.docx_第4页
第4页 / 共11页
Android实现微信自动抢红包的程序.docx_第5页
第5页 / 共11页
Android实现微信自动抢红包的程序.docx_第6页
第6页 / 共11页
Android实现微信自动抢红包的程序.docx_第7页
第7页 / 共11页
Android实现微信自动抢红包的程序.docx_第8页
第8页 / 共11页
Android实现微信自动抢红包的程序.docx_第9页
第9页 / 共11页
Android实现微信自动抢红包的程序.docx_第10页
第10页 / 共11页
Android实现微信自动抢红包的程序.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Android实现微信自动抢红包的程序.docx

《Android实现微信自动抢红包的程序.docx》由会员分享,可在线阅读,更多相关《Android实现微信自动抢红包的程序.docx(11页珍藏版)》请在冰点文库上搜索。

Android实现微信自动抢红包的程序.docx

Android实现微信自动抢红包的程序

Android实现微信自动抢红包的程序

简单实现了微信自动抢红包的服务,原理就是根据关键字找到相应的View,然后自动点击。

主要是用到AccessibilityService这个辅助服务,基本可以满足自动抢红包的功能,但是有些逻辑需要优化,比如,拆完一个红包后,必须手动点击返回键,才能进行下一次自动抢红包。

AndroidManifest.xml

xmlversion="1.0"encoding="utf-8"?

>

android="

package="com.jackie.webchatenvelope">

android:

allowBackup="true"

android:

icon="@mipmap/ic_launcher"

android:

label="@string/app_name"

android:

theme="@style/AppTheme">

android:

name=".MainActivity"

android:

label="@string/app_name">

name="android.intent.action.MAIN"/>

name="android.intent.category.LAUNCHER"/>

android:

enabled="true"

android:

exported="true"

android:

label="@string/app_name"

android:

name=".EnvelopeService"

android:

permission="android.permission.BIND_ACCESSIBILITY_SERVICE">

name="android.accessibilityservice.AccessibilityService"/>

android:

name="android.accessibilityservice"

android:

resource="@xml/envelope_service_config"/>

envelope_service_config.xml

xmlversion="1.0"encoding="utf-8"?

>

android="

android:

accessibilityEventTypes="typeNotificationStateChanged|typeWindowStateChanged"

android:

accessibilityFeedbackType="feedbackGeneric"

android:

accessibilityFlags=""

android:

canRetrieveWindowContent="true"

android:

description="@string/accessibility_description"

android:

notificationTimeout="100"

android:

packageNames="com.tencent.mm"/>

activity_main.xml

android="

xmlns:

tools="

android:

layout_width="match_parent"

android:

layout_height="match_parent"

android:

paddingBottom="@dimen/activity_vertical_margin"

android:

paddingLeft="@dimen/activity_horizontal_margin"

android:

paddingRight="@dimen/activity_horizontal_margin"

android:

paddingTop="@dimen/activity_vertical_margin"

tools:

context=".MainActivity">

android:

id="@+id/start"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

padding="10dp"

android:

layout_centerInParent="true"

android:

textSize="18sp"

android:

text="打开辅助服务"/>

MainActivity.java

packagecom.jackie.webchatenvelope;

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.Menu;

importandroid.view.MenuItem;

importandroid.view.View;

importandroid.widget.Button;

importandroid.widget.Toast;

publicclassMainActivityextendsActivity{

privateButtonstartBtn;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

startBtn=(Button)findViewById(R.id.start);

startBtn.setOnClickListener(newView.OnClickListener(){

@Override

publicvoidonClick(Viewv){

try{

//打开系统设置中辅助功能

Intentintent=newIntent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS);

startActivity(intent);

Toast.makeText(MainActivity.this,"找到抢红包,然后开启服务即可",Toast.LENGTH_LONG).show();

}catch(Exceptione){

e.printStackTrace();

}

}

});

}

@Override

publicbooleanonCreateOptionsMenu(Menumenu){

//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.

getMenuInflater().inflate(R.menu.menu_main,menu);

returntrue;

}

@Override

publicbooleanonOptionsItemSelected(MenuItemitem){

//Handleactionbaritemclickshere.Theactionbarwill

//automaticallyhandleclicksontheHome/Upbutton,solong

//asyouspecifyaparentactivityinAndroidManifest.xml.

intid=item.getItemId();

//noinspectionSimplifiableIfStatement

if(id==R.id.action_settings){

returntrue;

}

returnsuper.onOptionsItemSelected(item);

}

}

EnvelopeService.java

packagecom.jackie.webchatenvelope;

importandroid.accessibilityservice.AccessibilityService;

importandroid.annotation.TargetApi;

importandroid.app.Notification;

importandroid.app.PendingIntent;

importandroid.os.Build;

importandroid.os.Handler;

importandroid.util.Log;

importandroid.view.accessibility.AccessibilityEvent;

importandroid.view.accessibility.AccessibilityManager;

importandroid.view.accessibility.AccessibilityNodeInfo;

importandroid.widget.Toast;

importjava.util.List;

/**

*

CreatedbyAdministrator

*

*抢红包外挂服务

*/

publicclassEnvelopeServiceextendsAccessibilityService{

staticfinalStringTAG="Jackie";

/**

*微信的包名

*/

staticfinalStringWECHAT_PACKAGENAME="com.tencent.mm";

/**

*红包消息的关键字

*/

staticfinalStringENVELOPE_TEXT_KEY="[微信红包]";

Handlerhandler=newHandler();

@Override

publicvoidonAccessibilityEvent(AccessibilityEventevent){

finalinteventType=event.getEventType();

Log.d(TAG,"事件---->"+event);

//通知栏事件

if(eventType==AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED){

Listtexts=event.getText();

if(!

texts.isEmpty()){

for(CharSequencet:

texts){

Stringtext=String.valueOf(t);

if(text.contains(ENVELOPE_TEXT_KEY)){

openNotification(event);

break;

}

}

}

}elseif(eventType==AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED){

openEnvelope(event);

}

}

/*@Override

protectedbooleanonKeyEvent(KeyEventevent){

//returnsuper.onKeyEvent(event);

returntrue;

}*/

@Override

publicvoidonInterrupt(){

Toast.makeText(this,"中断抢红包服务",Toast.LENGTH_SHORT).show();

}

@Override

protectedvoidonServiceConnected(){

super.onServiceConnected();

Toast.makeText(this,"连接抢红包服务",Toast.LENGTH_SHORT).show();

}

privatevoidsendNotificationEvent(){

AccessibilityManagermanager=(AccessibilityManager)getSystemService(ACCESSIBILITY_SERVICE);

if(!

manager.isEnabled()){

return;

}

AccessibilityEventevent=AccessibilityEvent.obtain(AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED);

event.setPackageName(WECHAT_PACKAGENAME);

event.setClassName(Notification.class.getName());

CharSequencetickerText=ENVELOPE_TEXT_KEY;

event.getText().add(tickerText);

manager.sendAccessibilityEvent(event);

}

/**

*打开通知栏消息

*/

@TargetApi(Build.VERSION_CODES.JELLY_BEAN)

privatevoidopenNotification(AccessibilityEventevent){

if(event.getParcelableData()==null||!

(event.getParcelableData()instanceofNotification)){

return;

}

//以下是精华,将微信的通知栏消息打开

Notificationnotification=(Notification)event.getParcelableData();

PendingIntentpendingIntent=notification.contentIntent;

try{

pendingIntent.send();

}catch(PendingIntent.CanceledExceptione){

e.printStackTrace();

}

}

@TargetApi(Build.VERSION_CODES.JELLY_BEAN)

privatevoidopenEnvelope(AccessibilityEventevent){

if("com.tencent.mm.plugin.luckymoney.ui.LuckyMoneyReceiveUI".equals(event.getClassName())){

//点中了红包,下一步就是去拆红包

checkKey1();

}elseif("com.tencent.mm.plugin.luckymoney.ui.LuckyMoneyDetailUI".equals(event.getClassName())){

//拆完红包后看详细的纪录界面

//nonething

}elseif("com.tencent.mm.ui.LauncherUI".equals(event.getClassName())){

//在聊天界面,去点中红包

checkKey2();

}

}

@TargetApi(Build.VERSION_CODES.JELLY_BEAN)

privatevoidcheckKey1(){

AccessibilityNodeInfonodeInfo=getRootInActiveWindow();

if(nodeInfo==null){

Log.w(TAG,"rootWindow为空");

return;

}

Listlist=nodeInfo.findAccessibilityNodeInfosByText("拆红包");

for(AccessibilityNodeInfon:

list){

n.performAction(AccessibilityNodeInfo.ACTION_CLICK);

}

}

@TargetApi(Build.VERSION_CODES.JELLY_BEAN)

privatevoidcheckKey2(){

AccessibilityNodeInfonodeInfo=getRootInActiveWindow();

if(nodeInfo==null){

Log.w(TAG,"rootWindow为空");

return;

}

Listlist=nodeInfo.findAccessibilityNodeInfosByText("领取红包");

if(list.isEmpty()){

list=nodeInfo.findAccessibilityNodeInfosByText(ENVELOPE_TEXT_KEY);

for(AccessibilityNodeInfon:

list){

Log.i(TAG,"-->微信红包:

"+n);

n.performAction(AccessibilityNodeInfo.ACTION_CLICK);

break;

}

}else{

//最新的红包领起

for(inti=list.size()-1;i>=0;i--){

AccessibilityNodeInfoparent=list.get(i).getParent();

Log.i(TAG,"-->领取红包:

"+parent);

if(parent!

=null){

parent.performAction(AccessibilityNodeInfo.ACTION_CLICK);

break;

}

}

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2