android 微信红包

package com.example.lenovo.myapplication.demo1;

import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.annotation.TargetApi;
import android.app.Application;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import android.graphics.Rect;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.RequiresApi;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityWindowInfo;

import com.example.lenovo.myapplication.log.LogShow;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

/**
 * Created by lenovo on 2017/1/14.
 */

public class TestServer extends AccessibilityService {
    String tag="SSSSSD";
    @TargetApi(Build.VERSION_CODES.KITKAT)
    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
        int eventType = event.getEventType();
        LogShow.soutShow("sdsdd");
        LogShow.soutShow(event.getClassName());
        LogShow.soutShow(event.getPackageName().toString());

        LogShow.soutShow(event.getEventType());
        CharSequence className = event.getClassName();
        switch (eventType) {
            case AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED:
         //       handleNotification(event);
                break;
            case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED:
           /*    inputClick("com.tencent.mm:id/f7");
                openPacket("com.tencent.mm:id/a48");
              String className = event.getClassName().toString();
                if (className.equals("com.tencent.mm.ui.LauncherUI")) {
                    openPacket("com.tencent.mm:id/a48");
                    // com.tencet.mm:/a56
                } else if (className.equals("com.tencent.mm.plugin.luckymoney.ui.LuckyMoneyReceiveUI")) {
                 inputClicka("com.tencent.mm:id/be_","com.tencent.mm:id/bed"); //bed
                } else if (className.equals("com.tencent.mm.plugin.luckymoney.ui.LuckyMoneyDetailUI")) {
                    inputClick("com.tencent.mm:id/gr");
                }*/

            case AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED:
             //   inputClick("com.tencent.mm:id/f7");
            //    inputClick("com.tencent.mm:id/f7");

                String classNames = event.getClassName().toString();
                logShow(classNames);
                if (classNames.equals("com.tencent.mm.ui.LauncherUI")) {

                    // com.tencet.mm:/a56
                } else if (classNames.equals("com.tencent.mm.plugin.luckymoney.ui.LuckyMoneyReceiveUI")) {
                    inputClicka("com.tencent.mm:id/be_","com.tencent.mm:id/bed"); //退出或者点击
                } else if (classNames.equals("com.tencent.mm.plugin.luckymoney.ui.LuckyMoneyDetailUI")) {
                    inputClick("com.tencent.mm:id/gr"); //退出界面
                }
             //   openPacket("com.tencent.mm:id/a48");
                getNodeValue(getRootInActiveWindow());
                break;
        }

    }
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
    private void getPvalue(String clickId){
        AccessibilityNodeInfo nodeInfo = getRootInActiveWindow();

        if (nodeInfo != null) {
            List<AccessibilityNodeInfo> list = nodeInfo.findAccessibilityNodeInfosByViewId(clickId);
            if (list.size()<1){
                return;
            }


           /*     for (AccessibilityNodeInfo item : list) {

                    while (!item.isClickable()){
                        item=item.getParent();
                    }
                    item.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                    return;

                }*/


        }
    }
    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
    private void getNodeValue( AccessibilityNodeInfo info){
      //  AccessibilityNodeInfo nodeInfo = getRootInActiveWindow();
//      logShow(nodeInfo.getChildCount()+"");
            //  logShow("111111111111");
        if (info==null){
            return;
        }
        if (info.getChildCount() == 0) {
            if(info.getText() != null){

             /*   if("微信红包".equals(info.getText().toString())){
                    //这里有一个问题需要注意,就是需要找到一个可以点击的View
                    info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                    AccessibilityNodeInfo parent = info.getParent();
                    while(parent != null){
                        if(parent.isClickable()){
                            parent.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                         return;
                        }
                        parent = parent.getParent();
                    }
                }else*/ if ("删除".equals(info.getText().toString())){
                    info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                    AccessibilityNodeInfo parent = info.getParent();
                    while(parent != null){

                        if(parent.isClickable()){
                            parent.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                            return;
                        }
                        parent = parent.getParent();
                    }
                } else if ("删除该聊天".equals(info.getText().toString())){
                    info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                    AccessibilityNodeInfo parent = info.getParent();
                    while(parent != null){

                        if(parent.isClickable()){
                            parent.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                            return;
                        }
                        parent = parent.getParent();
                    }
                }
              /*  else if (!"微信红包".equals(info.getText().toString())){
                    info.performAction(AccessibilityNodeInfo.ACTION_LONG_CLICK);
                    AccessibilityNodeInfo parent = info.getParent();
                    while(parent != null){

                        if(parent.isClickable()){
                            parent.performAction(AccessibilityNodeInfo.ACTION_LONG_CLICK);
                            return;
                        }
                        parent = parent.getParent();
                    }
                }else {
                    info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                    AccessibilityNodeInfo parent = info.getParent();
                    while(parent != null){

                        if(parent.isClickable()){
                            parent.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                            return;
                        }
                        parent = parent.getParent();
                    }
                }*/
            }

        } else {
            for (int i = 0; i < info.getChildCount(); i++) {
                if(info.getChild(i)!=null){
                    getNodeValue(info.getChild(i));
                }
            }
        }



    }
    private void logShow(String value){
        Log.v("logShowlogShow",value);
    }
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
    private void inputClick(String clickId) {
        AccessibilityNodeInfo nodeInfo = getRootInActiveWindow();

        if (nodeInfo != null) {
            List<AccessibilityNodeInfo> list = nodeInfo.findAccessibilityNodeInfosByViewId(clickId);
            if (list.size()>0&&list.size()<3){
                for (AccessibilityNodeInfo item : list) {

                    while (!item.isClickable()){
                        item=item.getParent();
                    }
                    item.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                    return;

                }
            }

        }
    }
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
    private void inputClicka(String clickId,String clickId1) {
        AccessibilityNodeInfo nodeInfo = getRootInActiveWindow();
        if (nodeInfo != null) {
            List<AccessibilityNodeInfo> list = nodeInfo.findAccessibilityNodeInfosByViewId(clickId);
            List<AccessibilityNodeInfo> list1 = nodeInfo.findAccessibilityNodeInfosByViewId(clickId1);
            if (list!=null){
                for (AccessibilityNodeInfo item : list) {
                    item.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                      return;
                }
            }
            if (list1!=null) {
                for (AccessibilityNodeInfo item : list1) {
                    item.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                }
            }


        }
    }
    @Override
    public void onInterrupt() {

    }


    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
    private void openPacket(String value) {
        AccessibilityNodeInfo nodeInfo = getRootInActiveWindow();
          if (nodeInfo != null) {
            //为了演示,直接查看了红包控件的id
            List<AccessibilityNodeInfo> list = nodeInfo.findAccessibilityNodeInfosByViewId(value);

             if (list!=null&&list.size()>0){
                 if (lists.size()>0){
                     for (AccessibilityNodeInfo s:list) {
                         int a=s.hashCode();
                             if (lists.contains(a)){
                                 s.performAction(AccessibilityNodeInfo.ACTION_LONG_CLICK);
                                 lists.clear();
                                 return;
                             }
                     }
                 }else {
                     lists.add(list.get(0).hashCode());
                     list.get(0).performAction(AccessibilityNodeInfo.ACTION_CLICK);
                     return;
                 }

            }

        }
    }
 public  List<Integer> lists;
Handler han=new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        Bundle data = msg.getData();
        AccessibilityNodeInfo accessibilityNodeInfo=   data.getParcelable("jason");
        accessibilityNodeInfo.performAction(AccessibilityNodeInfo.ACTION_CLICK);
    }
};
    @Override
    protected void onServiceConnected() {
        super.onServiceConnected();
        lists=new ArrayList<>();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
      //  lists.removeAll(null);
    }
}
 xml文件
<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"

    android:accessibilityEventTypes="typeAllMask"
    android:accessibilityFeedbackType="feedbackGeneric"
    android:accessibilityFlags="flagDefault"
    android:canRetrieveWindowContent="true"
    android:notificationTimeout="100"
    android:packageNames="com.tencent.mm" />
manifast文件
<service android:name="com.example.test.cache.weixxin.GoToWxin"
    android:enabled="true"
    android:exported="true"
    android:label="微信号LostBoyJason微信红包"
    android:description="@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/accessibility"/>
</service>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值