微信6.53抢红包

来源:互联网 发布:c2c网络购物须知要点 编辑:程序博客网 时间:2024/04/30 00:52

此软件运行的时候 微信并不能好好聊天 ....这个是软件存在的bug 如果你能改好 可以联系下我0.0 万分感谢

免责声明

此软件就是学习用的,请不要用作商业用途,否则后果自负。
apk百度云连接
链接:http://pan.baidu.com/s/1bo3AIPD 密码:nbju



清单文件


<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.liuan.accessibilityservicedemo">    <uses-permission android:name="android.permission.CAMERA" />    <uses-permission android:name="android.permission.FLASHLIGHT" />    <uses-feature android:name="android.hardware.camera" />    <uses-feature android:name="android.hardware.camera.autofocus" />    <uses-permission android:name="android.permission.VIBRATE" />    <uses-permission android:name="android.permission.WAKE_LOCK" />    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.INTERNET" />    <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:supportsRtl="true"        android:theme="@style/AppTheme">        <activity android:name=".MainActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <service            android:name=".RobService"            android:enabled="true"            android:exported="true"            android:label="LA-微信红包"            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/accessibility"/>        </service>    </application></manifest>

accessibility.xml

<?xml version="1.0" encoding="utf-8"?><accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"    android:accessibilityEventTypes="typeNotificationStateChanged|typeWindowStateChanged|typeWindowContentChanged"    android:accessibilityFeedbackType="feedbackGeneric"    android:accessibilityFlags="flagDefault"    android:canRetrieveWindowContent="true"    android:notificationTimeout="100"    android:description="@string/description"    android:packageNames="com.tencent.mm" />


res/values 文件

strings.xml
<resources>    <string name="app_name">LA微信红包</string>    <string name="description">android交流群:582951247  \n\t当前软件仅支持微信6.53,请确认版本是否一致</string>    <string name="tips">找到【LA-微信红包】确认开启即可</string></resources>


styles.xml
<resources>    <!-- Base application theme. -->    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">        <!-- Customize your theme here. -->        <item name="colorPrimary">@color/colorPrimary</item>        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>        <item name="colorAccent">@color/colorAccent</item>    </style>    <style name="QR_Dialog_Theme" parent="Theme.AppCompat.Light.Dialog">        <item name="android:windowFrame">@null</item>        <item name="android:windowIsFloating">true</item>        <item name="android:windowIsTranslucent">true</item>        <item name="android:windowNoTitle">true</item>        <item name="android:background">@android:color/transparent</item>        <item name="android:windowBackground">@android:color/transparent</item>        <item name="android:backgroundDimEnabled">true</item>    </style></resources>


布局文件
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"android:orientation="vertical"    tools:context="com.example.liuan.accessibilityservicedemo.MainActivity">    <Button        android:id="@+id/bt_check"        android:layout_margin="7dp"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="开启/关闭服务" />    <Button        android:layout_margin="7dp"        android:id="@+id/bt_backer"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="后台运行" />    <Button        android:layout_margin="7dp"        android:id="@+id/bt_explain"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="说明" />    <Button        android:layout_margin="7dp"        android:id="@+id/bt_reward"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="打赏" /></LinearLayout>


donate_dialog_layout.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:gravity="center"    android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:text="长按保存,单击扫码,选择图片,~~~,"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginBottom="10dp"        android:textColor="@android:color/white"        android:textSize="14dp"/>    <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@mipmap/zhifuma"/></LinearLayout>


核心代码
MainActivity
package com.example.liuan.accessibilityservicedemo;import android.app.Dialog;import android.content.ContentValues;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;import android.os.Bundle;import android.provider.MediaStore;import android.provider.Settings;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.Toast;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private Button bt_check;    private Button bt_backer;    private Button bt_explain;    private Button bt_reward;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        bt_check = (Button) findViewById(R.id.bt_check);        bt_backer = (Button) findViewById(R.id.bt_backer);        bt_explain = (Button) findViewById(R.id.bt_explain);        bt_reward = (Button) findViewById(R.id.bt_reward);        bt_check.setOnClickListener(this);        bt_backer.setOnClickListener(this);        bt_explain.setOnClickListener(this);        bt_reward.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.bt_check:                Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);                startActivity(intent);                Toast.makeText(this, R.string.tips, Toast.LENGTH_LONG).show();                break;            case R.id.bt_backer:                Intent intent2 = new Intent(Intent.ACTION_MAIN, null);                intent2.addCategory(Intent.CATEGORY_HOME);                startActivity(intent2);                break;            case R.id.bt_explain:                AlertDialog.Builder builder = new AlertDialog.Builder(this);                builder.setTitle("说明");                builder.setMessage("由于开发者能力有限制\n这就很尴尬...\n本软件仅供学习使用\n我只是一个单纯的开发者\n 已知bug\n 开启服务时,不能正常聊天");                builder.setPositiveButton("已阅读", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                    }                });                builder.create().show();                break;            case R.id.bt_reward:              showDonateDialog();                break;        }    }    /** 显示捐赠的对话框*/    private void showDonateDialog() {        final Dialog dialog = new Dialog(this, R.style.QR_Dialog_Theme);        View view = getLayoutInflater().inflate(R.layout.donate_dialog_layout, null);        view.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //跳到支付宝                try {                    //利用Intent打开支付宝                    //支付宝跳过开启动画打开扫码和付款码的url scheme分别是alipayqr://platformapi/startapp?saId=10000007                    //和alipayqr://platformapi/startapp?saId=20000056                    Uri uri = Uri.parse("alipayqr://platformapi/startapp?saId=10000007");                    Intent intent = new Intent(Intent.ACTION_VIEW, uri);                    startActivity(intent);                } catch (Exception e) {                    //若无法正常跳转,在此进行错误处理                    Toast.makeText(MainActivity.this, "无法跳转到支付宝,请检查您是否安装了支付宝!", Toast.LENGTH_SHORT).show();                }                Toast.makeText(getApplicationContext(), "已复制到粘贴板", Toast.LENGTH_LONG).show();                dialog.dismiss();            }        });        view.setOnLongClickListener(new View.OnLongClickListener() {            @Override            public boolean onLongClick(View v) {                File output = new File(android.os.Environment.getExternalStorageDirectory(), "LA_ZFB_二维码.jpg");                if(!output.exists()) {                    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.zhifuma);                   saveBitmap(MainActivity.this, output, bitmap);                }                Toast.makeText(MainActivity.this, "已保存到:" + output.getAbsolutePath(), Toast.LENGTH_LONG).show();                return true;            }        });        dialog.setContentView(view);        dialog.show();    }    public static boolean saveBitmap(Context context, File output, Bitmap bitmap) {        if(output.exists()) {            return false;        }        FileOutputStream fos = null;        try {            fos = new FileOutputStream(output);            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);            insertMedia(context, output, "image/jpeg");            return true;        } catch (FileNotFoundException e) {            e.printStackTrace();            return false;        } finally {            if(fos != null) {                try {                    fos.close();                } catch (Exception e) {}            }        }    }    private static void insertMedia(Context context, File output,String mime) {        try {            ContentValues values = new ContentValues();            values.put(MediaStore.Video.Media.DATA, output.getAbsolutePath());            values.put(MediaStore.Video.Media.MIME_TYPE, mime);            //记录到系统媒体数据库,通过系统的gallery可以即时查看            context.getContentResolver().insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values);            //通知系统去扫描            context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(output)));        } catch (Exception e){}    }}


RobService


package com.example.liuan.accessibilityservicedemo;import android.accessibilityservice.AccessibilityService;import android.annotation.TargetApi;import android.app.Notification;import android.app.PendingIntent;import android.os.Build;import android.util.Log;import android.view.accessibility.AccessibilityEvent;import android.view.accessibility.AccessibilityNodeInfo;import android.widget.Toast;import java.util.ArrayList;import java.util.List;/** * Name: RobService * Action: * Author: liuan * creatTime:2017-01-14 19:36 */public class RobService extends AccessibilityService {    private List<AccessibilityNodeInfo> parents=new ArrayList<>();    private int lastbagnum;    private boolean WXMAIN = false;    private boolean auto = false;    String pubclassName;    //对话内监控    private boolean ALL=true;    @Override    public void onAccessibilityEvent(AccessibilityEvent event) {        int eventType = event.getEventType();        switch (eventType) {            //当通知栏发生改变时            case 2048:                pubclassName = event.getClassName().toString();                if (!auto && pubclassName.equals("android.widget.TextView") && ALL) {                    getLastPacket();                }                if (auto && WXMAIN) {                    getLastPacket();                    auto = false;                }                break;            case AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED:                handleNotification(event);                break;            case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED://            case AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED:                String className = event.getClassName().toString();                if (className.equals("com.tencent.mm.ui.LauncherUI")) {                    //点击最后一个红包                    Log.e("AAAAAAAA", "点击红包");                    //手动加的代码if(auto)    //[微信红包]恭喜发财,大吉大利!    click("com.tencent.mm:id/adu");                    //微信红包                    click("com.tencent.mm:id/a57");                    getLastPacket();                    WXMAIN=true;                    //getPacket();                } else if (className.equals("com.tencent.mm.plugin.luckymoney.ui.LuckyMoneyReceiveUI")) {                    click("com.tencent.mm:id/be_");                   // openPacket();                    WXMAIN=false;                } else if (className.equals("com.tencent.mm.plugin.luckymoney.ui.LuckyMoneyDetailUI")) {                    //点击的返回 明明点击了但是却没有反应 这大概就叫做尴尬                    click("com.tencent.mm:id/gs");//                    //没抢到的返回                    click("com.tencent.mm:id/bed");                    //获取红包的金额                    AccessibilityNodeInfo nodeInfo = getRootInActiveWindow();                    if (nodeInfo != null) {                        List<AccessibilityNodeInfo> list = nodeInfo.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/bbe");                        for (AccessibilityNodeInfo item : list) {//                            item.performAction(AccessibilityNodeInfo.ACTION_CLICK);                            Toast.makeText(this, "你抢到了一个"+item.getText()+"的红包 是不是很开心" , Toast.LENGTH_SHORT).show();                        }                    }//                }else{                }                break;        }    }    /**     * 处理通知栏信息     *     * 如果是微信红包的提示信息,则模拟点击     *     * @param event     */    private void handleNotification(AccessibilityEvent event) {        List<CharSequence> texts = event.getText();        if (!texts.isEmpty()) {            for (CharSequence text : texts) {                String content = text.toString();                //如果微信红包的提示信息,则模拟点击进入相应的聊天窗口                if (content.contains("[微信红包]")) {                    if (event.getParcelableData() != null && event.getParcelableData() instanceof Notification) {                        Notification notification = (Notification) event.getParcelableData();                        PendingIntent pendingIntent = notification.contentIntent;                        auto=true;                        try {                            pendingIntent.send();                        } catch (PendingIntent.CanceledException e) {                            e.printStackTrace();                        }                    }                }            }        }    }        @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)    private void click(String clickId) {        AccessibilityNodeInfo nodeInfo = getRootInActiveWindow();        if (nodeInfo != null) {            List<AccessibilityNodeInfo> list = nodeInfo.findAccessibilityNodeInfosByViewId(clickId);            for (AccessibilityNodeInfo item : list) {                item.performAction(AccessibilityNodeInfo.ACTION_CLICK);            }        }    }    public void recycle(AccessibilityNodeInfo info) {        try {            if (info.getChildCount() == 0) {                if (info.getText() != null) {                    if ("领取红包".equals(info.getText().toString())) {                        if (info.isClickable()) {                            info.performAction(AccessibilityNodeInfo.ACTION_CLICK);                        }                        AccessibilityNodeInfo parent = info.getParent();                        while (parent != null) {                            if (parent.isClickable()) {                                parents.add(parent);                                break;                            }                            parent = parent.getParent();                        }                    }                }            } else {                for (int i = 0; i < info.getChildCount(); i++) {                    if (info.getChild(i) != null) {                        recycle(info.getChild(i));                    }                }            }        } catch (Exception e) {        }    }    private void getLastPacket() {        AccessibilityNodeInfo rootNode = getRootInActiveWindow();        recycle(rootNode);        if (parents.size() > 0) {            parents.get(parents.size() - 1).performAction(AccessibilityNodeInfo.ACTION_CLICK);            lastbagnum = parents.size();            parents.clear();        }    }    @Override    public void onInterrupt() {    }    @Override    protected void onServiceConnected() {        super.onServiceConnected();    }    @Override    public void onDestroy() {        super.onDestroy();        parents.clear();    }}


0 0
原创粉丝点击