Runt
2022-05-11 7b9daa6f5e8f622c055231a8baef3214df99846c
app/src/main/java/com/auto/lyric/service/AutoInputService.java
@@ -4,6 +4,7 @@
import android.accessibilityservice.AccessibilityServiceInfo;
import android.annotation.SuppressLint;
import android.content.BroadcastReceiver;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
@@ -28,25 +29,26 @@
        @Override
        public void onReceive(Context context, Intent intent) {
            int action = intent.getIntExtra("action", 0);
            ClipboardManager cmb = (ClipboardManager) context .getSystemService(Context.CLIPBOARD_SERVICE);
            Log.e(TAG, "onReceive action: " + action);
            switch (action){
                case ACTION_SEND:
                    //List<AccessibilityNodeInfo> nodeInfos = getRootInActiveWindow().findAccessibilityNodeInfosByViewId("com.ss.android.ugc.aweme:id/llp");
                    AccessibilityNodeInfo sendNode = getViewByDesc(getRootInActiveWindow(),"发送");
                    Log.e(TAG, "ACTION_SEND nodeInfos: " + sendNode);
                    Log.e(TAG, "ACTION_SEND "+cmb.getText()+" nodeInfos: " + sendNode);
                    if(sendNode != null){
                        Log.e(TAG, "ACTION_SEND nodeInfos: " + sendNode.getClassName());
                        sendNode.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                    }else{
                        printView(getRootInActiveWindow()," ");
                        //printView(getRootInActiveWindow()," ");
                        Toast.makeText(getBaseContext(),"未找到控件",Toast.LENGTH_SHORT).show();
                    }
                    break;
                case ACTION_PASTE:
                    try{
                        List<AccessibilityNodeInfo> list = getRootInActiveWindow().findAccessibilityNodeInfosByText("说点什么...");
                        Log.e(TAG, "ACTION_PASTE nodeInfos: " + list.size());
                        printView(getRootInActiveWindow()," ");
                        Log.e(TAG, "ACTION_PASTE "+cmb.getText()+" nodeInfos: " + list.size());
                        //printView(getRootInActiveWindow()," ");
                        AccessibilityNodeInfo editNode = getView(getRootInActiveWindow(),"android.widget.EditText");
                        if(editNode != null){
                            Log.e(TAG, "ACTION_PASTE nodeInfos: " + editNode.getClassName());
@@ -81,13 +83,13 @@
        switch (eventType) {
            case AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED://界面变化事件
                Log.e(TAG, "TYPE_WINDOW_CONTENT_CHANGED " );
                if(event.getClassName().toString().equals("androidx.viewpager.widget.ViewPager")){
                if(event.getClassName().toString().equals("androidx.viewpager.widget.ViewPager") && flag){
                    clickEdit();
                }
                break;
            case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED://界面变化事件
                Log.e(TAG, "TYPE_WINDOW_STATE_CHANGED " );
                if(source != null && event.getClassName().toString().equals("com.ss.android.ugc.aweme.live.LivePlayActivity")){
                if(source != null && event.getClassName().toString().equals("com.ss.android.ugc.aweme.live.LivePlayActivity") && flag){
                    clickEdit();
                }
@@ -138,7 +140,7 @@
                Log.e(TAG,"执行点击 "+list.get(0).getPaneTitle());
            }
        }else if(flag){
            Toast.makeText(getBaseContext(),"未找到控件",Toast.LENGTH_SHORT).show();
            //Toast.makeText(getBaseContext(),"未找到控件",Toast.LENGTH_SHORT).show();
        }
    }
@@ -173,20 +175,22 @@
    @SuppressLint("NewApi")
    private AccessibilityNodeInfo getViewByDesc(AccessibilityNodeInfo node, String desc){
        Log.e(TAG,desc +" getViewByDesc id:"+node.getViewIdResourceName() +" class:"+node.getClassName()+" text:"+node.getText()+" "+node.getContentDescription());
        Log.e(TAG,"getViewByDesc  node:"+node);
        if(node.getChildCount() > 0){
            for(int i = 0 ; i < node.getChildCount() ; i ++){
                if(node.getChild(i) != null) {
                    AccessibilityNodeInfo nodeInfo = getViewByDesc(node.getChild(i), desc);
                    if(nodeInfo != null){
                        return nodeInfo;
        try{
            Log.e(TAG,desc +" getViewByDesc id:"+node.getViewIdResourceName() +" class:"+node.getClassName()+" text:"+node.getText()+" "+node.getContentDescription());
            Log.e(TAG,"getViewByDesc  node:"+node);
            if(node.getChildCount() > 0){
                for(int i = 0 ; i < node.getChildCount() ; i ++){
                    if(node.getChild(i) != null) {
                        AccessibilityNodeInfo nodeInfo = getViewByDesc(node.getChild(i), desc);
                        if(nodeInfo != null){
                            return nodeInfo;
                        }
                    }
                }
            }else if(node != null && node.getContentDescription() != null && node.getContentDescription().equals(desc)){
                return node;
            }
        }else if(node != null && node.getContentDescription() != null && node.getContentDescription().equals(desc)){
            return node;
        }
        }catch (Exception e){}
        return null;
    }
    private void printWindow(AccessibilityWindowInfo window, String space){