From 7f292c4158e1854ca6dc72895c829e538cbc6c7b Mon Sep 17 00:00:00 2001
From: Runt <qingingrunt2010@qq.com>
Date: Wed, 04 May 2022 15:21:57 +0000
Subject: [PATCH] 发送歌词功能

---
 app/src/main/java/com/auto/lyric/service/AutoInputService.java |   58 ++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 36 insertions(+), 22 deletions(-)

diff --git a/app/src/main/java/com/auto/lyric/service/AutoInputService.java b/app/src/main/java/com/auto/lyric/service/AutoInputService.java
index 73c3ea9..e5bb979 100644
--- a/app/src/main/java/com/auto/lyric/service/AutoInputService.java
+++ b/app/src/main/java/com/auto/lyric/service/AutoInputService.java
@@ -43,15 +43,19 @@
                     }
                     break;
                 case ACTION_PASTE:
-                    List<AccessibilityNodeInfo> list = getRootInActiveWindow().findAccessibilityNodeInfosByText("说点什么...");
-                    Log.e(TAG, "ACTION_PASTE nodeInfos: " + list.size());
-                    printView(getRootInActiveWindow()," ");
-                    AccessibilityNodeInfo editNode = getView(getRootInActiveWindow(),"android.widget.EditText");
-                    if(editNode != null){
-                        Log.e(TAG, "ACTION_PASTE nodeInfos: " + editNode.getClassName());
-                        editNode.performAction(AccessibilityNodeInfo.ACTION_PASTE);
-                    }else{
-                        Toast.makeText(getBaseContext(),"未找到控件",Toast.LENGTH_SHORT).show();
+                    try{
+                        List<AccessibilityNodeInfo> list = getRootInActiveWindow().findAccessibilityNodeInfosByText("说点什么...");
+                        Log.e(TAG, "ACTION_PASTE nodeInfos: " + list.size());
+                        printView(getRootInActiveWindow()," ");
+                        AccessibilityNodeInfo editNode = getView(getRootInActiveWindow(),"android.widget.EditText");
+                        if(editNode != null){
+                            Log.e(TAG, "ACTION_PASTE nodeInfos: " + editNode.getClassName());
+                            editNode.performAction(AccessibilityNodeInfo.ACTION_PASTE);
+                        }else{
+                            Toast.makeText(getBaseContext(),"未找到控件",Toast.LENGTH_SHORT).show();
+                        }
+                    }catch (Exception e){
+                        e.printStackTrace();
                     }
 
                     break;
@@ -77,23 +81,14 @@
         switch (eventType) {
             case AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED://界面变化事件
                 Log.e(TAG, "TYPE_WINDOW_CONTENT_CHANGED " );
+                if(event.getClassName().toString().equals("androidx.viewpager.widget.ViewPager")){
+                    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")){
-                    List<AccessibilityNodeInfo> list = getRootInActiveWindow().findAccessibilityNodeInfosByText("说点什么...");
-                    Log.e(TAG,"获取到控件 "+list.size());
-                    if (list != null && list.size() > 0 && flag) {
-                        //模拟第三方点击事件
-                        //找到你的节点以后 就直接点击他就行了
-                        //AccessibilityNodeInfo node = list.get(0);
-                        list.get(0).performAction(AccessibilityNodeInfo.ACTION_CLICK);
-                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
-                            Log.e(TAG,"执行点击 "+list.get(0).getPaneTitle());
-                        }
-                    }else if(flag){
-                        Toast.makeText(getBaseContext(),"未找到控件",Toast.LENGTH_SHORT).show();
-                    }
+                    clickEdit();
                 }
 
                 if(event.getText().contains("更多选项") ){
@@ -128,6 +123,25 @@
 
     }
 
+    /**
+     * 点击弹出 edit弹框
+     */
+    private void clickEdit(){
+        List<AccessibilityNodeInfo> list = getRootInActiveWindow().findAccessibilityNodeInfosByText("说点什么...");
+        Log.e(TAG,"获取到控件 "+list.size());
+        if (list != null && list.size() > 0 && flag) {
+            //模拟第三方点击事件
+            //找到你的节点以后 就直接点击他就行了
+            //AccessibilityNodeInfo node = list.get(0);
+            list.get(0).performAction(AccessibilityNodeInfo.ACTION_CLICK);
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+                Log.e(TAG,"执行点击 "+list.get(0).getPaneTitle());
+            }
+        }else if(flag){
+            Toast.makeText(getBaseContext(),"未找到控件",Toast.LENGTH_SHORT).show();
+        }
+    }
+
     @SuppressLint("NewApi")
     private void printView(AccessibilityNodeInfo node, String space){
         Log.e(TAG,space +node+" id:"+node.getViewIdResourceName() +" class:"+node.getClassName()+" text:"+node.getText()+" "+node.getPaneTitle());

--
Gitblit v1.9.1