B2BÍøÂçÈí¼þ

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á ÉóºËÍøÕ¾ºÅ:QQ:896757558
ËÑË÷
²é¿´: 1|»Ø¸´: 0
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ

Ôª±¦½ØÍ¼BÕ¾ÑéÖ¤ÂëʾÀý²âÊÔ

[¸´ÖÆÁ´½Ó]

1134

Ö÷Ìâ

1139

Ìû×Ó

7813

»ý·Ö

abc

Rank: 9Rank: 9Rank: 9

»ý·Ö
7813
Ìø×ªµ½Ö¸¶¨Â¥²ã
Â¥Ö÷
Ôª±¦½ØÍ¼BÕ¾ÑéÖ¤ÂëʾÀý²âÊÔ
Ôª±¦½ØÍ¼BÕ¾ÑéÖ¤ÂëʾÀý²âÊÔ B2BÍøÂçÈí¼þ

  1. // AIWROK ×Ô¶¯»¯Á÷³Ì£º½ØÍ¼BÕ¾ÑéÖ¤Âë ¡ú Æô¶¯Ôª±¦ ¡ú ·¢ËͽØÍ¼Ñ¯ÎÊÍ϶¯¾àÀë ¡ú ²É¼¯»Ø´ð ¡ú ÇлØBÕ¾Í϶¯»¬¿é
  2. // °üÃû£ºcom.tencent.hunyuan.app.chat£¨Ôª±¦£©
  3. //
  4. // ʹÓÃ˵Ã÷£º
  5. //   1. ÔÚBÕ¾ÑéÖ¤ÂëÒ³ÃæÔËÐнű¾
  6. //   2. ½Å±¾×Ô¶¯½ØÍ¼²¢·¢Ë͸øÔª±¦Ê¶±ð
  7. //   3. ½âÎöÔª±¦·µ»ØµÄÍ϶¯¾àÀ룬ÇлØBÕ¾Í϶¯»¬¿é

  8. print.log("===== Ôª±¦Ê¶±ðÑéÖ¤ÂëÍ϶¯BÕ¾Á÷³ÌÆô¶¯ =====");
  9. print.time();

  10. // ========== ÅäÖÃÇø ==========
  11. var Ôª±¦°üÃû = "com.tencent.hunyuan.app.chat";
  12. var BÕ¾°üÃû = "tv.danmaku.bili";
  13. var ½ØÍ¼±£´æÂ·¾¶ = "/sdcard/ÑéÖ¤Âë½ØÍ¼.png";

  14. var µÈ´ý»Ø´ð³¬Ê±Ãë = 20;
  15. var »Ø´ðÊä³öµÈ´ýÃë = 5;
  16. var »¬¿éУ׼ϵÊý = 1.0;

  17. var ÌáÎÊ»°Êõ = "Çë°ïÎÒ·ÖÎöÕâÕÅͼƬ£¬¸æËßÎÒ×ó±ßµÄ·½¿éÐèÒªÏòÓÒÒÆ¶¯¶àÉÙÏñËØ²ÅÄܺÍÓұߵÄȱ¿Ú¶ÔÆë£¬Ö»Êä³öÊý×Ö";

  18. // ========== »ñÈ¡É豸ÐÅÏ¢ ==========
  19. var ÆÁÄ»¿í = screen.getScreenWidth();
  20. var ÆÁÄ»¸ß = screen.getScreenHeight();
  21. var ÑéÖ¤Â뻬¿é¾àÀë = null;
  22. print.log("ÆÁÄ»³ß´ç£º" + ÆÁÄ»¿í + " x " + ÆÁÄ»¸ß);
  23. print.log("´úÀí״̬£º" + (agent.isOpen() ? "ÒÑ¿ªÆô" : "먦Æô"));

  24. // ========== ¹¤¾ßº¯Êý ==========

  25. function »ñÈ¡UI() {
  26.     var xml = agent.getXml();
  27.     return "" + xml;
  28. }

  29. function ×Ö·û´®³¤¶È(s) {
  30.     var str = "" + s;
  31.     return str.length;
  32. }

  33. function ½âÂëHTMLʵÌå(s) {
  34.     var str = "" + s;
  35.     str = str.replace(/
  36. /g, "\n");
  37.     str = str.replace(/
  38. /g, "\r");
  39.     str = str.replace(/        /g, "\t");
  40.     str = str.replace(/'/g, "'");
  41.     str = str.replace(/"/g, '"');
  42.     str = str.replace(/"/g, '"');
  43.     str = str.replace(/'/g, "'");
  44.     str = str.replace(/&/g, "&");
  45.     str = str.replace(/</g, "<");
  46.     str = str.replace(/>/g, ">");
  47.     return str;
  48. }

  49. function ²É¼¯AI»Ø´ðÁбí(xml) {
  50.     var xmlStr = "" + xml;
  51.     var »Ø´ðÁбí = [];

  52.     var messageLinearlayoutPattern = /<node[^>]*?resource-id="[^"]*?message_linearlayout"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/g;
  53.     var lineMatch;
  54.    
  55.     while ((lineMatch = messageLinearlayoutPattern.exec(xmlStr)) !== null) {
  56.         var lineStart = lineMatch.index;
  57.         var lineEnd = xmlStr.indexOf('/node>', lineStart);
  58.         if (lineEnd === -1) lineEnd = xmlStr.length;
  59.         var lineContent = xmlStr.substring(lineStart, lineEnd);
  60.         
  61.         if (lineContent.indexOf('chats_message_dtmp_answer_container') !== -1) {
  62.             var textViewPattern = /<node[^>]*?text="([^"]+)"[^>]*?class="android\.widget\.TextView"[^>]*?\/?>/g;
  63.             var tvMatch;
  64.             while ((tvMatch = textViewPattern.exec(lineContent)) !== null) {
  65.                 if (tvMatch[1] && ×Ö·û´®³¤¶È(tvMatch[1]) > 1) {
  66.                     var ԭʼÎı¾ = tvMatch[1];
  67.                     var ½âÂëÎı¾ = ½âÂëHTMLʵÌå(ԭʼÎı¾);
  68.                     if (!»Ø´ðÁбí.includes(½âÂëÎı¾)) {
  69.                         »Ø´ðÁбí.push(½âÂëÎı¾);
  70.                         print.log("✓ ÔڻشðÈÝÆ÷ÖÐÕÒµ½Îı¾: '" + ½âÂëÎı¾ + "'");
  71.                     }
  72.                 }
  73.             }
  74.         }
  75.     }
  76.    
  77.     if (»Ø´ðÁбí.length === 0) {
  78.         print.log("⚠ δÕÒµ½AI»Ø´ð½Úµã");
  79.     } else {
  80.         print.log("✓ ²É¼¯µ½" + »Ø´ðÁбí.length + "ÌõAI»Ø´ð");
  81.     }

  82.     return »Ø´ðÁбí;
  83. }

  84. function »ñÈ¡µ±Ç°×îºóAI»Ø´ð(xml) {
  85.     var »Ø´ðÁбí = ²É¼¯AI»Ø´ðÁбí(xml);
  86.     if (»Ø´ðÁбí.length === 0) return "";
  87.     return »Ø´ðÁбí[»Ø´ðÁбí.length - 1];
  88. }

  89. function È«ÆÁ½ØÍ¼(±£´æÂ·¾¶) {
  90.     try {
  91.         var result = agent.shell("screencap -p " + ±£´æÂ·¾¶);
  92.         print.log("✓ ½ØÍ¼ÃüÁîÖ´ÐУº" + result);
  93.         
  94.         var lsResult = agent.shell("ls -la " + ±£´æÂ·¾¶);
  95.         print.log("✓ ½ØÍ¼Îļþ¼ì²é£º" + lsResult);
  96.         
  97.         return true;
  98.     } catch (e) {
  99.         print.log("⚠ ½ØÍ¼Ê§°Ü£º" + e.message);
  100.         return false;
  101.     }
  102. }

  103. function ²éÕÒÊäÈë¿òÖÐÐÄ(xml) {
  104.     var xmlStr = "" + xml;
  105.    
  106.     var inputIdx = xmlStr.indexOf('edConversationInput');
  107.     if (inputIdx === -1) {
  108.         inputIdx = xmlStr.indexOf('text="·¢ÏûÏ¢»ò°´×¡Ëµ»°..."');
  109.     }
  110.     if (inputIdx === -1) {
  111.         inputIdx = xmlStr.indexOf('class="android.widget.EditText"');
  112.     }
  113.    
  114.     if (inputIdx !== -1) {
  115.         var ¶Î = xmlStr.substring(inputIdx);
  116.         var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  117.         if (m) {
  118.             var x1 = parseInt(m[1]);
  119.             var y1 = parseInt(m[2]);
  120.             var x2 = parseInt(m[3]);
  121.             var y2 = parseInt(m[4]);
  122.             print.log("✓ ÊäÈë¿ò¶¨Î»£ºbounds=[" + x1 + "," + y1 + "][" + x2 + "," + y2 + "]");
  123.             return {
  124.                 x: (x1 + x2) / 2,
  125.                 y: (y1 + y2) / 2
  126.             };
  127.         }
  128.     }

  129.     print.log("⚠ δÕÒµ½ÊäÈë¿ò£¬Ê¹Óöµµ××ø±ê");
  130.     return {
  131.         x: ÆÁÄ»¿í * 0.4,
  132.         y: ÆÁÄ»¸ß * 0.92
  133.     };
  134. }

  135. function ²éÕҼӺŰ´Å¥(xml) {
  136.     var xmlStr = "" + xml;
  137.    
  138.     var plusIdx = xmlStr.indexOf('flConversationInputPlus');
  139.     if (plusIdx !== -1) {
  140.         var ¶Î = xmlStr.substring(plusIdx);
  141.         var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  142.         if (m) {
  143.             var x = (parseInt(m[1]) + parseInt(m[3])) / 2;
  144.             var y = (parseInt(m[2]) + parseInt(m[4])) / 2;
  145.             print.log("✓ ¼ÓºÅ°´Å¥¶¨Î»£ºflConversationInputPlus£¬×ø±ê(" + Math.round(x) + "," + Math.round(y) + ")");
  146.             return { x: x, y: y };
  147.         }
  148.     }

  149.     var cvPlusIdx = xmlStr.indexOf('cv_chat_input_plus');
  150.     if (cvPlusIdx !== -1) {
  151.         var ¶Î2 = xmlStr.substring(cvPlusIdx);
  152.         var m2 = ¶Î2.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  153.         if (m2) {
  154.             var x = (parseInt(m2[1]) + parseInt(m2[3])) / 2;
  155.             var y = (parseInt(m2[2]) + parseInt(m2[4])) / 2;
  156.             print.log("✓ ¼ÓºÅ°´Å¥¶¨Î»£ºcv_chat_input_plus£¬×ø±ê(" + Math.round(x) + "," + Math.round(y) + ")");
  157.             return { x: x, y: y };
  158.         }
  159.     }

  160.     var ÊäÈë¿ò = ²éÕÒÊäÈë¿òÖÐÐÄ(xml);
  161.     if (ÊäÈë¿ò) {
  162.         var Ô¤¹ÀX = ÆÁÄ»¿í * 0.92;
  163.         var Ô¤¹ÀY = ÊäÈë¿ò.y;
  164.         print.log("⚠ δÕÒµ½¼ÓºÅ°´Å¥£¬Ê¹ÓÃÊäÈë¿òÓҲඵµ××ø±ê(" + Math.round(Ô¤¹ÀX) + "," + Math.round(Ô¤¹ÀY) + ")");
  165.         return { x: Ô¤¹ÀX, y: Ô¤¹ÀY };
  166.     }

  167.     print.log("⚠ ¼ÓºÅ°´Å¥Ê¹ÓÃÆÁÄ»ÓÒ²àµ×²¿¶µµ××ø±ê");
  168.     return {
  169.         x: ÆÁÄ»¿í * 0.92,
  170.         y: ÆÁÄ»¸ß * 0.92
  171.     };
  172. }

  173. function Õ³ÌùÎı¾(Îı¾) {
  174.     try {
  175.         Clipboard.copy("" + Îı¾);
  176.     } catch (e) {
  177.         print.log("⚠ Clipboard.copy ʧ°Ü£º" + e.message);
  178.     }
  179.     sleep.millisecond(ºÁÃë = 300);

  180.     try {
  181.         agent.shell("service call clipboard 3 i32 1 s16 '" + Îı¾ + "' i32 0");
  182.     } catch (e2) {
  183.         // ºöÂÔ´íÎó
  184.     }
  185.     sleep.millisecond(ºÁÃë = 300);

  186.     agent.shell("input keyevent 279");
  187.     sleep.second(Ãë = 1);
  188.     print.log("✓ ÒÑÕ³ÌùÎı¾£º" + Îı¾);
  189. }

  190. function ²éÕÒÏà²áÑ¡Ïî(xml) {
  191.     var xmlStr = "" + xml;
  192.    
  193.     var text¹Ø¼ü´Ê = ["Ïà²á", "ͼƬ", "ÕÕÆ¬", "ËùÓÐÕÕÆ¬", "´ÓÏà²áÑ¡Ôñ", "Ñ¡ÔñͼƬ"];
  194.     for (var i = 0; i < text¹Ø¼ü´Ê.length; i++) {
  195.         var kw = text¹Ø¼ü´Ê[i];
  196.         var idx = xmlStr.indexOf('text="' + kw + '"');
  197.         if (idx !== -1) {
  198.             var ¶Î = xmlStr.substring(idx);
  199.             var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  200.             if (m) {
  201.                 print.log("✓ Ïà²áÑ¡Ïλ£ºtext=" + kw);
  202.                 return {
  203.                     x: (parseInt(m[1]) + parseInt(m[3])) / 2,
  204.                     y: (parseInt(m[2]) + parseInt(m[4])) / 2
  205.                 };
  206.             }
  207.         }
  208.     }

  209.     var desc¹Ø¼ü´Ê = ["Ïà²á", "ͼƬ", "ÕÕÆ¬"];
  210.     for (var j = 0; j < desc¹Ø¼ü´Ê.length; j++) {
  211.         var kw2 = desc¹Ø¼ü´Ê[j];
  212.         var idx2 = xmlStr.indexOf('content-desc="' + kw2 + '"');
  213.         if (idx2 !== -1) {
  214.             var ¶Î2 = xmlStr.substring(idx2);
  215.             var m2 = ¶Î2.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  216.             if (m2) {
  217.                 print.log("✓ Ïà²áÑ¡Ïλ£ºcontent-desc=" + kw2);
  218.                 return {
  219.                     x: (parseInt(m2[1]) + parseInt(m2[3])) / 2,
  220.                     y: (parseInt(m2[2]) + parseInt(m2[4])) / 2
  221.                 };
  222.             }
  223.         }
  224.     }

  225.     return null;
  226. }

  227. function ÊÇ·ñÔÚϵͳÏà²áÒ³Ãæ(xml) {
  228.     var xmlStr = "" + xml;
  229.    
  230.     var packageMatch = xmlStr.match(/package="([^"]+)"/);
  231.     var µ±Ç°°üÃû = packageMatch ? packageMatch[1] : "";
  232.     if (µ±Ç°°üÃû && µ±Ç°°üÃû !== Ôª±¦°üÃû) {
  233.         print.log("✓ ¼ì²âµ½ÏµÍ³Ïà²áÒ³Ãæ£¬°üÃû£º" + µ±Ç°°üÃû);
  234.         return true;
  235.     }
  236.    
  237.     var gallery¹Ø¼ü´Ê = ["×î½ü", "ͼ¿â", "Camera", "ËùÓÐͼƬ", "ÕÕÆ¬", "Ïà²á", "All photos", "Photos"];
  238.     for (var i = 0; i < gallery¹Ø¼ü´Ê.length; i++) {
  239.         if (xmlStr.indexOf('text="' + gallery¹Ø¼ü´Ê[i] + '"') !== -1 ||
  240.             xmlStr.indexOf('content-desc="' + gallery¹Ø¼ü´Ê[i] + '"') !== -1) {
  241.             var ÓÐÁÄÌìÊäÈë = xmlStr.indexOf("edConversationInput") !== -1;
  242.             if (!ÓÐÁÄÌìÊäÈë) {
  243.                 print.log("✓ ¼ì²âµ½Ïà²áÒ³Ãæ£¨¹Ø¼ü´Ê£º" + gallery¹Ø¼ü´Ê[i] + "£©");
  244.                 return true;
  245.             }
  246.         }
  247.     }
  248.    
  249.     var ÓÐͼƬÎļþ = xmlStr.indexOf('.png"') !== -1 || xmlStr.indexOf('.jpg"') !== -1 ||
  250.                      xmlStr.indexOf('.jpeg"') !== -1 || xmlStr.indexOf('.gif"') !== -1;
  251.     var ÓÐÑ¡Ôñ°´Å¥ = xmlStr.indexOf('text="Ñ¡Ôñ"') !== -1;
  252.     var ÓÐÁÄÌìÊäÈë2 = xmlStr.indexOf("edConversationInput") !== -1;
  253.     var ÓÐÁÄÌìÁбí = xmlStr.indexOf("chat_recycler_view") !== -1;
  254.    
  255.     if (ÓÐͼƬÎļþ && ÓÐÑ¡Ôñ°´Å¥ && !ÓÐÁÄÌìÊäÈë2 && !ÓÐÁÄÌìÁбí) {
  256.         print.log("✓ ¼ì²âµ½Ïà²áÒ³Ãæ£¨Ôª±¦ComposeView£¬ÓÐͼƬÎļþºÍÑ¡Ôñ°´Å¥£©");
  257.         return true;
  258.     }
  259.    
  260.     return false;
  261. }

  262. function ÊÇ·ñÔÚͼƬԤÀÀÒ³Ãæ(xml) {
  263.     var xmlStr = "" + xml;
  264.     if (xmlStr.indexOf('text="Íê³É"') !== -1 || xmlStr.indexOf('text="·¢ËÍ"') !== -1) {
  265.         return true;
  266.     }
  267.     if (xmlStr.indexOf('content-desc="Íê³É"') !== -1 || xmlStr.indexOf('content-desc="·¢ËÍ"') !== -1) {
  268.         return true;
  269.     }
  270.     return false;
  271. }

  272. function ²éÕÒͼƬԤÀÀÈ·Èϰ´Å¥(xml) {
  273.     var xmlStr = "" + xml;
  274.    
  275.     var ¹Ø¼ü´Ê = ["Íê³É", "·¢ËÍ", "È·ÈÏ"];
  276.     for (var i = 0; i < ¹Ø¼ü´Ê.length; i++) {
  277.         var kw = ¹Ø¼ü´Ê[i];
  278.         var textIdx = xmlStr.indexOf('text="' + kw + '"');
  279.         if (textIdx !== -1) {
  280.             var ¶Î = xmlStr.substring(textIdx);
  281.             var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  282.             if (m) {
  283.                 var x = (parseInt(m[1]) + parseInt(m[3])) / 2;
  284.                 var y = (parseInt(m[2]) + parseInt(m[4])) / 2;
  285.                 print.log("✓ ͼƬԤÀÀÈ·Èϰ´Å¥¶¨Î»£ºtext=" + kw + "£¬×ø±ê(" + Math.round(x) + "," + Math.round(y) + ")");
  286.                 return { x: x, y: y };
  287.             }
  288.         }
  289.     }
  290.    
  291.     for (var j = 0; j < ¹Ø¼ü´Ê.length; j++) {
  292.         var kw2 = ¹Ø¼ü´Ê[j];
  293.         var descIdx = xmlStr.indexOf('content-desc="' + kw2 + '"');
  294.         if (descIdx !== -1) {
  295.             var ¶Î2 = xmlStr.substring(descIdx);
  296.             var m2 = ¶Î2.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  297.             if (m2) {
  298.                 var x = (parseInt(m2[1]) + parseInt(m2[3])) / 2;
  299.                 var y = (parseInt(m2[2]) + parseInt(m2[4])) / 2;
  300.                 print.log("✓ ͼƬԤÀÀÈ·Èϰ´Å¥¶¨Î»£ºcontent-desc=" + kw2 + "£¬×ø±ê(" + Math.round(x) + "," + Math.round(y) + ")");
  301.                 return { x: x, y: y };
  302.             }
  303.         }
  304.     }
  305.    
  306.     print.log("⚠ ͼƬԤÀÀÈ·Èϰ´Å¥Ê¹Óöµµ××ø±ê£¨µ×²¿Öм䣩");
  307.     return { x: ÆÁÄ»¿í * 0.5, y: ÆÁÄ»¸ß * 0.92 };
  308. }

  309. function ²éÕÒÏà²áÑ¡Ôñ°´Å¥(xml) {
  310.     var xmlStr = "" + xml;
  311.    
  312.     var ¹Ø¼ü´ÊÁбí = ["Ñ¡Ôñ", "Íê³É", "È·ÈÏ", "·¢ËÍ", "È·¶¨"];
  313.     for (var i = 0; i < ¹Ø¼ü´ÊÁбí.length; i++) {
  314.         var kw = ¹Ø¼ü´ÊÁбí[i];
  315.         
  316.         var textPattern = new RegExp('text="' + kw + '[^"]*"[^>]*?bounds="\\[(\\d+),(\\d+)\\]\\[(\\d+),(\\d+)\\]"', 'gi');
  317.         var textMatch = textPattern.exec(xmlStr);
  318.         if (textMatch) {
  319.             var x = (parseInt(textMatch[1]) + parseInt(textMatch[3])) / 2;
  320.             var y = (parseInt(textMatch[2]) + parseInt(textMatch[4])) / 2;
  321.             print.log("✓ Ïà²áÑ¡Ôñ°´Å¥¶¨Î»£ºtext=" + kw + "£¬×ø±ê(" + Math.round(x) + "," + Math.round(y) + ")");
  322.             return { x: x, y: y };
  323.         }
  324.         
  325.         var descIdx = xmlStr.indexOf('content-desc="' + kw + '"');
  326.         if (descIdx !== -1) {
  327.             var ¶Î2 = xmlStr.substring(descIdx);
  328.             var m2 = ¶Î2.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  329.             if (m2) {
  330.                 var x = (parseInt(m2[1]) + parseInt(m2[3])) / 2;
  331.                 var y = (parseInt(m2[2]) + parseInt(m2[4])) / 2;
  332.                 print.log("✓ Ïà²áÑ¡Ôñ°´Å¥¶¨Î»£ºcontent-desc=" + kw + "£¬×ø±ê(" + Math.round(x) + "," + Math.round(y) + ")");
  333.                 return { x: x, y: y };
  334.             }
  335.         }
  336.     }
  337.    
  338.     var bottomButtonPattern = /<node[^>]*?clickable="true"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/g;
  339.     var bottomMatch;
  340.     var µ×²¿°´Å¥Áбí = [];
  341.     while ((bottomMatch = bottomButtonPattern.exec(xmlStr)) !== null) {
  342.         var bx1 = parseInt(bottomMatch[1]);
  343.         var by1 = parseInt(bottomMatch[2]);
  344.         var bx2 = parseInt(bottomMatch[3]);
  345.         var by2 = parseInt(bottomMatch[4]);
  346.         if (by1 >= ÆÁÄ»¸ß * 0.85) {
  347.             µ×²¿°´Å¥Áбí.push({ x: (bx1 + bx2) / 2, y: (by1 + by2) / 2 });
  348.         }
  349.     }
  350.    
  351.     if (µ×²¿°´Å¥Áбí.length > 0) {
  352.         µ×²¿°´Å¥Áбí.sort(function(a, b) { return b.x - a.x; });
  353.         var ×îÓұ߰´Å¥ = µ×²¿°´Å¥Áбí[0];
  354.         print.log("✓ Ïà²áÑ¡Ôñ°´Å¥¶¨Î»£ºµ×²¿×îÓұ߰´Å¥£¬×ø±ê(" + Math.round(×îÓұ߰´Å¥.x) + "," + Math.round(×îÓұ߰´Å¥.y) + ")");
  355.         return { x: ×îÓұ߰´Å¥.x, y: ×îÓұ߰´Å¥.y };
  356.     }
  357.    
  358.     print.log("⚠ Ïà²áÑ¡Ôñ°´Å¥Ê¹Óöµµ××ø±ê£¨µ×²¿£©");
  359.     return { x: ÆÁÄ»¿í * 0.78, y: ÆÁÄ»¸ß * 0.92 };
  360. }

  361. function ²éÕÒµÚÒ»ÕÅͼƬ(xml) {
  362.     var xmlStr = "" + xml;
  363.    
  364.     if (ÊÇ·ñÔÚϵͳÏà²áÒ³Ãæ(xmlStr)) {
  365.         agent.shell("echo '" + xmlStr.substring(0, 5000) + "' > /sdcard/Ïà²áUI_dump.xml");
  366.         print.log("✓ Òѱ£´æÏà²áUI XMLµ½/sdcard/Ïà²áUI_dump.xml");
  367.         
  368.         var nafPattern = /<node[^>]*?NAF="true"[^>]*?clickable="true"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/g;
  369.         var nafMatch;
  370.         var NAFСԲµãÁбí = [];
  371.         
  372.         while ((nafMatch = nafPattern.exec(xmlStr)) !== null) {
  373.             var nx1 = parseInt(nafMatch[1]);
  374.             var ny1 = parseInt(nafMatch[2]);
  375.             var nx2 = parseInt(nafMatch[3]);
  376.             var ny2 = parseInt(nafMatch[4]);
  377.             var nw = nx2 - nx1;
  378.             var nh = ny2 - ny1;
  379.             
  380.             if (nw >= 50 && nw <= 300 && nh >= 50 && nh <= 300) {
  381.                 if (ny1 >= 400 && ny2 <= ÆÁÄ»¸ß - 400) {
  382.                     NAFСԲµãÁбí.push({ x1: nx1, y1: ny1, x2: nx2, y2: ny2, x: (nx1 + nx2) / 2, y: (ny1 + ny2) / 2 });
  383.                 }
  384.             }
  385.         }
  386.         
  387.         if (NAFСԲµãÁбí.length > 0) {
  388.             NAFСԲµãÁбí.sort(function(a, b) {
  389.                 if (a.y1 !== b.y1) return a.y1 - b.y1;
  390.                 return a.x1 - b.x1;
  391.             });
  392.             var Ñ¡ÖÐСԲµã = NAFСԲµãÁбí[0];
  393.             print.log("✓ ComposeViewÕÒµ½NAFСԲµãÑ¡Ôñ¿ò£º×ø±ê(" + Math.round(Ñ¡ÖÐСԲµã.x) + "," + Math.round(Ñ¡ÖÐСԲµã.y) + ")£¬bounds=[" + Ñ¡ÖÐСԲµã.x1 + "," + Ñ¡ÖÐСԲµã.y1 + "][" + Ñ¡ÖÐСԲµã.x2 + "," + Ñ¡ÖÐСԲµã.y2 + "]");
  394.             return { x: Ñ¡ÖÐСԲµã.x, y: Ñ¡ÖÐСԲµã.y };
  395.         }
  396.         
  397.         var imageDescPattern = /<node[^>]*?content-desc="([^"]+\.(png|jpg|jpeg|gif))"[^>]*?class="android\.view\.View"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/gi;
  398.         var imgMatch;
  399.         var ͼƬ½ÚµãÁбí = [];
  400.         
  401.         while ((imgMatch = imageDescPattern.exec(xmlStr)) !== null) {
  402.             var ÎļþÃû = imgMatch[1];
  403.             var ix1 = parseInt(imgMatch[3]);
  404.             var iy1 = parseInt(imgMatch[4]);
  405.             var ix2 = parseInt(imgMatch[5]);
  406.             var iy2 = parseInt(imgMatch[6]);
  407.             var iw = ix2 - ix1;
  408.             var ih = iy2 - iy1;
  409.             
  410.             if (iw >= 100 && ih >= 100) {
  411.                 ͼƬ½ÚµãÁбí.push({ ÎļþÃû: ÎļþÃû, x1: ix1, y1: iy1, x2: ix2, y2: iy2, w: iw, h: ih });
  412.             }
  413.         }
  414.         
  415.         if (ͼƬ½ÚµãÁбí.length > 0) {
  416.             Í¼Æ¬½ÚµãÁбí.sort(function(a, b) {
  417.                 if (a.y1 !== b.y1) return a.y1 - b.y1;
  418.                 return a.x1 - b.x1;
  419.             });
  420.             var µÚÒ»ÕÅͼƬ = ͼƬ½ÚµãÁбí[0];
  421.             print.log("✓ ÕÒµ½Í¼Æ¬£º" + µÚÒ»ÕÅͼƬ.ÎļþÃû + "£¬bounds=[" + µÚÒ»ÕÅͼƬ.x1 + "," + µÚÒ»ÕÅͼƬ.y1 + "][" + µÚÒ»ÕÅͼƬ.x2 + "," + µÚÒ»ÕÅͼƬ.y2 + "]");
  422.             
  423.             var Ñ¡Ôñ¿òX = µÚÒ»ÕÅͼƬ.x1 + µÚÒ»ÕÅͼƬ.w * 0.77;
  424.             var Ñ¡Ôñ¿òY = µÚÒ»ÕÅͼƬ.y1 + µÚÒ»ÕÅͼƬ.h * 0.24;
  425.             print.log("✓ ¼ÆËãСԲµãÑ¡Ôñ¿ò×ø±ê£º(" + Math.round(Ñ¡Ôñ¿òX) + "," + Math.round(Ñ¡Ôñ¿òY) + ")");
  426.             return { x: Ñ¡Ôñ¿òX, y: Ñ¡Ôñ¿òY };
  427.         }
  428.         
  429.         var clickableViewPattern = /<node[^>]*?clickable="true"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/g;
  430.         var clickMatch;
  431.         var ¿Éµã»÷ÇøÓò = [];
  432.         while ((clickMatch = clickableViewPattern.exec(xmlStr)) !== null) {
  433.             var cx1 = parseInt(clickMatch[1]);
  434.             var cy1 = parseInt(clickMatch[2]);
  435.             var cx2 = parseInt(clickMatch[3]);
  436.             var cy2 = parseInt(clickMatch[4]);
  437.             var cw = cx2 - cx1;
  438.             var ch = cy2 - cy1;
  439.             ¿Éµã»÷ÇøÓò.push({ x1: cx1, y1: cy1, x2: cx2, y2: cy2, w: cw, h: ch, x: (cx1 + cx2) / 2, y: (cy1 + cy2) / 2 });
  440.         }
  441.         
  442.         var Í¼Æ¬ÇøÓòÄڿɵã»÷ = [];
  443.         for (var k = 0; k < ¿Éµã»÷ÇøÓò.length; k++) {
  444.             var item = ¿Éµã»÷ÇøÓò[k];
  445.             if (item.y >= 400 && item.y <= ÆÁÄ»¸ß - 400) {
  446.                 Í¼Æ¬ÇøÓòÄڿɵã»÷.push(item);
  447.             }
  448.         }
  449.         
  450.         if (Í¼Æ¬ÇøÓòÄڿɵã»÷.length > 0) {
  451.             Í¼Æ¬ÇøÓòÄڿɵã»÷.sort(function(a, b) {
  452.                 if (a.y !== b.y) return a.y - b.y;
  453.                 return a.x - b.x;
  454.             });
  455.             var µÚÒ»¸ö¿Éµã»÷ = Í¼Æ¬ÇøÓòÄڿɵã»÷[0];
  456.             print.log("✓ ComposeViewÍ¼Æ¬ÇøÓòÄÚµÚÒ»¸ö¿Éµã»÷ÔªËØ£º×ø±ê(" + Math.round(µÚÒ»¸ö¿Éµã»÷.x) + "," + Math.round(µÚÒ»¸ö¿Éµã»÷.y) + ")");
  457.             return { x: µÚÒ»¸ö¿Éµã»÷.x, y: µÚÒ»¸ö¿Éµã»÷.y };
  458.         }

  459.         print.log("⚠ ϵͳÏà²áδÕÒµ½Í¼Æ¬£¬Êä³öµ÷ÊÔÐÅÏ¢£º");
  460.         print.log("  µ±Ç°°üÃû£º" + xmlStr.match(/package="([^"]+)"/)[1]);
  461.         print.log("  XMLǰ1000×Ö·û£º" + xmlStr.substring(0, 1000));
  462.         print.log("  NAFСԲµãÊýÁ¿£º" + NAFСԲµãÁбí.length);
  463.         print.log("  Í¼Æ¬½ÚµãÊýÁ¿£º" + ͼƬ½ÚµãÁбí.length);
  464.         
  465.         var allImgViews = xmlStr.match(/class="android\.widget\.ImageView"/g);
  466.         print.log("  È«²¿ImageViewÊýÁ¿£º" + (allImgViews ? allImgViews.length : 0));
  467.         
  468.         return { x: ÆÁÄ»¿í * 0.25, y: ÆÁÄ»¸ß * 0.3 };
  469.     }

  470.     var rvPattern = /<node[^>]*?class="androidx\.recyclerview\.widget\.RecyclerView"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/g;
  471.     var rvMatch;
  472.     var ͼƬÁбíÇøÓò = null;

  473.     while ((rvMatch = rvPattern.exec(xmlStr)) !== null) {
  474.         var rx1 = parseInt(rvMatch[1]);
  475.         var ry1 = parseInt(rvMatch[2]);
  476.         var rx2 = parseInt(rvMatch[3]);
  477.         var ry2 = parseInt(rvMatch[4]);
  478.         var ¸ß¶È = ry2 - ry1;

  479.         if (ry1 > ÆÁÄ»¸ß * 0.7 && ¸ß¶È > 300) {
  480.             Í¼Æ¬ÁбíÇøÓò = {x1: rx1, y1: ry1, x2: rx2, y2: ry2};
  481.             print.log("✓ ÕÒµ½µ×²¿Í¼Æ¬ÁбíRecyclerView£º[" + rx1 + "," + ry1 + "][" + rx2 + "," + ry2 + "]");
  482.             break;
  483.         }
  484.     }

  485.     if (ͼƬÁбíÇøÓò) {
  486.         var imgPattern = /<node[^>]*?class="android\.widget\.ImageView"[^>]*?\/?>/g;
  487.         var imgMatch;
  488.         var ºòÑ¡ = [];
  489.         while ((imgMatch = imgPattern.exec(xmlStr)) !== null) {
  490.             var imgNode = imgMatch[0];
  491.             var boundsMatch = imgNode.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  492.             if (!boundsMatch) continue;
  493.             var ix1 = parseInt(boundsMatch[1]);
  494.             var iy1 = parseInt(boundsMatch[2]);
  495.             var ix2 = parseInt(boundsMatch[3]);
  496.             var iy2 = parseInt(boundsMatch[4]);
  497.             var iw = ix2 - ix1;
  498.             var ih = iy2 - iy1;

  499.             var ÔÚÇøÓòÄÚ = (ix1 >= ͼƬÁбíÇøÓò.x1 && ix2 <= ͼƬÁбíÇøÓò.x2 &&
  500.                             iy1 >= ͼƬÁбíÇøÓò.y1 && iy2 <= ͼƬÁбíÇøÓò.y2);
  501.             var ÊÇ´óͼ = (iw > 100 && ih > 100);

  502.             if (ÔÚÇøÓòÄÚ && ÊÇ´óͼ) {
  503.                 ºòÑ¡.push({
  504.                     x: (ix1 + ix2) / 2,
  505.                     y: (iy1 + iy2) / 2,
  506.                     y1: iy1,
  507.                     x1: ix1
  508.                 });
  509.             }
  510.         }

  511.         if (ºòÑ¡.length > 0) {
  512.             ºòÑ¡.sort(function(a, b) {
  513.                 if (a.y1 !== b.y1) return a.y1 - b.y1;
  514.                 return a.x1 - b.x1;
  515.             });
  516.             var Ñ¡ÖÐ = ºòÑ¡[0];
  517.             print.log("✓ µÚÒ»ÕÅͼƬ¶¨Î»£ºµ×²¿Í¼Æ¬ÁбíÄÚµÄImageView£¬×ø±ê(" + Math.round(Ñ¡ÖÐ.x) + "," + Math.round(Ñ¡ÖÐ.y) + ")");
  518.             return { x: Ñ¡ÖÐ.x, y: Ñ¡ÖÐ.y };
  519.         }
  520.     }

  521.     var imgPattern2 = /<node[^>]*?class="android\.widget\.ImageView"[^>]*?\/?>/g;
  522.     var imgMatch2;
  523.     var ºòÑ¡2 = [];
  524.     while ((imgMatch2 = imgPattern2.exec(xmlStr)) !== null) {
  525.         var imgNode = imgMatch2[0];
  526.         var boundsMatch = imgNode.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  527.         if (!boundsMatch) continue;
  528.         var ix1 = parseInt(boundsMatch[1]);
  529.         var iy1 = parseInt(boundsMatch[2]);
  530.         var ix2 = parseInt(boundsMatch[3]);
  531.         var iy2 = parseInt(boundsMatch[4]);
  532.         var iw = ix2 - ix1;
  533.         var ih = iy2 - iy1;

  534.         if (iy1 > ÆÁÄ»¸ß * 0.7 && iw > 100 && ih > 100) {
  535.             ºòÑ¡2.push({
  536.                 x: (ix1 + ix2) / 2,
  537.                 y: (iy1 + iy2) / 2,
  538.                 y1: iy1,
  539.                 x1: ix1
  540.             });
  541.         }
  542.     }

  543.     if (ºòÑ¡2.length > 0) {
  544.         ºòÑ¡2.sort(function(a, b) {
  545.             if (a.y1 !== b.y1) return a.y1 - b.y1;
  546.             return a.x1 - b.x1;
  547.         });
  548.         var Ñ¡ÖÐ2 = ºòÑ¡2[0];
  549.         print.log("✓ µÚÒ»ÕÅͼƬ¶¨Î»£ºµ×²¿ÇøÓòImageView£¬×ø±ê(" + Math.round(Ñ¡ÖÐ2.x) + "," + Math.round(Ñ¡ÖÐ2.y) + ")");
  550.         return { x: Ñ¡ÖÐ2.x, y: Ñ¡ÖÐ2.y };
  551.     }

  552.     print.log("⚠ δÕÒµ½Í¼Æ¬£¬Ê¹Óöµµ××ø±ê£¨µ×²¿µÚÒ»ÐеÚÒ»ÁУ©");
  553.     return { x: ÆÁÄ»¿í * 0.15, y: ÆÁÄ»¸ß * 0.85 };
  554. }

  555. function ²éÕÒ·¢ËͰ´Å¥ÖÐÐÄ(xml) {
  556.     var xmlStr = "" + xml;

  557.     var sendTextIdx = xmlStr.indexOf('text="·¢ËÍ"');
  558.     if (sendTextIdx !== -1) {
  559.         var ¶Î = xmlStr.substring(sendTextIdx);
  560.         var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  561.         if (m) {
  562.             print.log("✓ ·¢ËͰ´Å¥¶¨Î»£ºÎı¾Æ¥Åä");
  563.             return {
  564.                 x: (parseInt(m[1]) + parseInt(m[3])) / 2,
  565.                 y: (parseInt(m[2]) + parseInt(m[4])) / 2
  566.             };
  567.         }
  568.     }

  569.     var inputIdx = xmlStr.indexOf('edConversationInput');
  570.     if (inputIdx !== -1) {
  571.         var ÊäÈë¿ò¶Î = xmlStr.substring(inputIdx);
  572.         var ÊäÈë¿ò±ß½ç = ÊäÈë¿ò¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  573.         if (ÊäÈë¿ò±ß½ç) {
  574.             var ÊäÈë¿òÐÅÏ¢ = {
  575.                 x1: parseInt(ÊäÈë¿ò±ß½ç[1]),
  576.                 y1: parseInt(ÊäÈë¿ò±ß½ç[2]),
  577.                 x2: parseInt(ÊäÈë¿ò±ß½ç[3]),
  578.                 y2: parseInt(ÊäÈë¿ò±ß½ç[4]),
  579.                 centerY: (parseInt(ÊäÈë¿ò±ß½ç[2]) + parseInt(ÊäÈë¿ò±ß½ç[4])) / 2
  580.             };

  581.             var clickablePattern = /<node[^>]*?clickable="true"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"[^>]*?\/?>/g;
  582.             var clickMatch;
  583.             var candidates = [];

  584.             while ((clickMatch = clickablePattern.exec(xmlStr)) !== null) {
  585.                 var cx1 = parseInt(clickMatch[1]);
  586.                 var cy1 = parseInt(clickMatch[2]);
  587.                 var cx2 = parseInt(clickMatch[3]);
  588.                 var cy2 = parseInt(clickMatch[4]);
  589.                 var cw = cx2 - cx1;
  590.                 var ch = cy2 - cy1;

  591.                 var ÊÇС°´Å¥ = (cw < 300 && ch < 300);
  592.                 var ÔÚÊäÈë¿òÓÒ²à = (cx1 > ÊäÈë¿òÐÅÏ¢.x2 - 100);
  593.                 var ÔÚÊäÈë¿òˮƽÐÐ = (cy1 >= ÊäÈë¿òÐÅÏ¢.y1 - 100 && cy1 <= ÊäÈë¿òÐÅÏ¢.y2 + 100);

  594.                 if (ÊÇС°´Å¥ && ÔÚÊäÈë¿òÓÒ²à && ÔÚÊäÈë¿òˮƽÐÐ) {
  595.                     candidates.push({
  596.                         x1: cx1, y1: cy1, x2: cx2, y2: cy2,
  597.                         x: (cx1 + cx2) / 2,
  598.                         y: (cy1 + cy2) / 2
  599.                     });
  600.                 }
  601.             }

  602.             if (candidates.length > 0) {
  603.                 var ·¢ËͰ´Å¥ºòÑ¡ = [];
  604.                 for (var ci = 0; ci < candidates.length; ci++) {
  605.                     var cand = candidates[ci];
  606.                     if (cand.y1 >= ÊäÈë¿òÐÅÏ¢.y1 + 300) {
  607.                         ·¢ËͰ´Å¥ºòÑ¡.push(cand);
  608.                     }
  609.                 }
  610.                
  611.                 if (·¢ËͰ´Å¥ºòÑ¡.length > 0) {
  612.                     ·¢ËͰ´Å¥ºòÑ¡.sort(function(a, b) {
  613.                         return b.x1 - a.x1;
  614.                     });
  615.                     var Ñ¡ÖÐ = ·¢ËͰ´Å¥ºòÑ¡[0];
  616.                     print.log("✓ ·¢ËͰ´Å¥¶¨Î»£ºÊäÈë¿òÓÒ²àÏ·½clickableÔªËØ£¬×ø±ê(" + Math.round(Ñ¡ÖÐ.x) + "," + Math.round(Ñ¡ÖÐ.y) + ")");
  617.                     return { x: Ñ¡ÖÐ.x, y: Ñ¡ÖÐ.y };
  618.                 }
  619.                
  620.                 candidates.sort(function(a, b) {
  621.                     return b.x1 - a.x1;
  622.                 });
  623.                 var Ñ¡ÖÐ = candidates[0];
  624.                 print.log("✓ ·¢ËͰ´Å¥¶¨Î»£ºÊäÈë¿òÓÒ²àclickableÔªËØ£¬×ø±ê(" + Math.round(Ñ¡ÖÐ.x) + "," + Math.round(Ñ¡ÖÐ.y) + ")");
  625.                 return { x: Ñ¡ÖÐ.x, y: Ñ¡ÖÐ.y };
  626.             }

  627.             var Ô¤¹ÀX = ÊäÈë¿òÐÅÏ¢.x2 + 100;
  628.             var Ô¤¹ÀY = ÊäÈë¿òÐÅÏ¢.centerY;
  629.             print.log("⚠ ·¢ËͰ´Å¥Ê¹ÓÃÊäÈë¿òÓҲඵµ××ø±ê(" + Math.round(Ô¤¹ÀX) + "," + Math.round(Ô¤¹ÀY) + ")");
  630.             return { x: Ô¤¹ÀX, y: Ô¤¹ÀY };
  631.         }
  632.     }

  633.     print.log("⚠ ·¢ËͰ´Å¥Ê¹ÓÃÆÁÄ»ÓҲඵµ×²ßÂÔ");
  634.     return {
  635.         x: ÆÁÄ»¿í * 0.92,
  636.         y: ÆÁÄ»¸ß * 0.92
  637.     };
  638. }

  639. function µÈ´ýAI»Ø´ðÍê³É(·¢ËÍǰµÄ×îºóÎı¾, ·¢ËÍǰ»Ø´ðÊýÁ¿) {
  640.     var ÒѺÄʱ = 0;
  641.     var ¼ì²é¼ä¸ôÃë = 1;

  642.     print.log("·¢ËÍǰ×îºóAI»Ø´ð£º'" + ·¢ËÍǰµÄ×îºóÎı¾ + "'£¬·¢ËÍǰ»Ø´ðÊýÁ¿£º" + ·¢ËÍǰ»Ø´ðÊýÁ¿);

  643.     while (ÒѺÄʱ < µÈ´ý»Ø´ð³¬Ê±Ãë) {
  644.         sleep.second(Ãë = ¼ì²é¼ä¸ôÃë);
  645.         ÒѺÄʱ += ¼ì²é¼ä¸ôÃë;

  646.         xml = »ñÈ¡UI();
  647.         var »Ø´ðÁбí = ²É¼¯AI»Ø´ðÁбí(xml);
  648.         
  649.         if (»Ø´ðÁбí.length > 0) {
  650.             var µ±Ç°×îºó»Ø´ð = »Ø´ðÁбí[»Ø´ðÁбí.length - 1];
  651.             
  652.             var ÓÐлشð = (µ±Ç°×îºó»Ø´ð !== ·¢ËÍǰµÄ×îºóÎı¾);
  653.             var »Ø´ðÊýÁ¿Ôö¼Ó = (»Ø´ðÁбí.length > ·¢ËÍǰ»Ø´ðÊýÁ¿);
  654.             
  655.             if (ÓÐлشð || »Ø´ðÊýÁ¿Ôö¼Ó) {
  656.                 print.log("✓ ¼ì²âµ½Ð»شð£¨" + ÒѺÄʱ + "Ã룩£º'" + µ±Ç°×îºó»Ø´ð + "'£¬ÊýÁ¿£º" + »Ø´ðÁбí.length);
  657.                
  658.                 var µÈ´ýÍê³É = 0;
  659.                 var Éϴγ¤¶È = ×Ö·û´®³¤¶È(µ±Ç°×îºó»Ø´ð);
  660.                 while (µÈ´ýÍê³É < »Ø´ðÊä³öµÈ´ýÃë) {
  661.                     sleep.second(Ãë = 1);
  662.                     µÈ´ýÍê³É++;
  663.                     
  664.                     xml = »ñÈ¡UI();
  665.                     var µ±Ç°Áбí = ²É¼¯AI»Ø´ðÁбí(xml);
  666.                     if (µ±Ç°Áбí.length > 0) {
  667.                         var µ±Ç°Îı¾ = µ±Ç°Áбí[µ±Ç°Áбí.length - 1];
  668.                         if (×Ö·û´®³¤¶È(µ±Ç°Îı¾) === Éϴ㤶È) {
  669.                             print.log("✓ Îı¾Í£Ö¹±ä»¯£¬·µ»Ø²É¼¯½á¹û£º" + µ±Ç°Îı¾);
  670.                             return µ±Ç°Îı¾;
  671.                         }
  672.                         Éϴγ¤¶È = ×Ö·û´®³¤¶È(µ±Ç°Îı¾);
  673.                     }
  674.                 }
  675.                
  676.                 var ×îÖÕÁбí = ²É¼¯AI»Ø´ðÁбí(xml);
  677.                 if (×îÖÕÁбí.length > 0) {
  678.                     var ×îÖÕÎı¾ = ×îÖÕÁбí[×îÖÕÁбí.length - 1];
  679.                     print.log("✓ ²É¼¯³É¹¦£¬·µ»Ø½á¹û£º" + ×îÖÕÎı¾);
  680.                     return ×îÖÕÎı¾;
  681.                 }
  682.             }
  683.         }
  684.     }

  685.     print.log("⚠ µÈ´ýAI»Ø´ð³¬Ê±£¨" + µÈ´ý»Ø´ð³¬Ê±Ãë + "Ã룩£¬³¢ÊÔ·µ»Øµ±Ç°ÄÚÈÝ");
  686.     xml = »ñÈ¡UI();
  687.     var ¶µµ×Áбí = ²É¼¯AI»Ø´ðÁбí(xml);
  688.     if (¶µµ×Áбí.length > 0) {
  689.         var ¶µµ×Îı¾ = ¶µµ×Áбí[¶µµ×Áбí.length - 1];
  690.         print.log("✓ ³¬Ê±¶µµ×£º·µ»Øµ±Ç°²É¼¯µ½µÄ»Ø´ð£º" + ¶µµ×Îı¾);
  691.         return ¶µµ×Îı¾;
  692.     }
  693.     return null;
  694. }

  695. // ========== Ö÷Á÷³Ì¿ªÊ¼ ==========

  696. function Ö÷Á÷³Ì() {
  697.     // ²½Öè1£ºÈ«ÆÁ½ØÍ¼£¨BÕ¾ÑéÖ¤ÂëÒ³Ãæ£©
  698.     print.log("\n========== ²½Öè1£ºÈ«ÆÁ½ØÍ¼BÕ¾ÑéÖ¤Âë ==========");
  699.     var ½ØÍ¼³É¹¦ = È«ÆÁ½ØÍ¼(½ØÍ¼±£´æÂ·¾¶);
  700.     if (!½ØÍ¼³É¹¦) {
  701.         print.log("✗ ½ØÍ¼Ê§°Ü£¬Í˳öÁ÷³Ì");
  702.         print.log("===== Ôª±¦Ê¶±ðÑéÖ¤ÂëÍ϶¯BÕ¾Á÷³Ì½áÊø =====");
  703.         return;
  704.     }

  705.     // ²½Öè2£ºÆô¶¯Ôª±¦APP
  706.     print.log("\n========== ²½Öè2£ºÆô¶¯Ôª±¦APP ==========");
  707.     try {
  708.         app.openApp(Ôª±¦°üÃû);
  709.         print.log("✓ ÒÑÆô¶¯Ôª±¦");
  710.     } catch (e) {
  711.         print.log("⚠ Æô¶¯Ê§°Ü£º" + e.message);
  712.     }
  713.     sleep.second(Ãë = 5);

  714.     // ²½Öè3£ºÈ·ÈϽøÈë¶Ô»°Ò³Ãæ
  715.     print.log("\n========== ²½Öè3£ºÈ·ÈϽøÈë¶Ô»°Ò³Ãæ ==========");
  716.     var xml = »ñÈ¡UI();
  717.     var hasRecyclerView = (xml.indexOf("chat_recycler_view") !== -1);
  718.     if (!hasRecyclerView) {
  719.         print.log("⚠ µ±Ç°Ò³Ãæ¿ÉÄܲ»ÊÇÔª±¦¶Ô»°Ò³£¬Ôٴεȴý");
  720.         sleep.second(Ãë = 3);
  721.         xml = »ñÈ¡UI();
  722.         hasRecyclerView = (xml.indexOf("chat_recycler_view") !== -1);
  723.     }

  724.     if (hasRecyclerView) {
  725.         print.log("✓ ÒѽøÈëÔª±¦¶Ô»°Ò³Ãæ");
  726.     } else {
  727.         print.log("⚠ δ¼ì²âµ½ÏûÏ¢ÁÐ±í£¬¼ÌÐø³¢ÊÔ");
  728.     }

  729.     // ²½Öè4£º¼Ç¼·¢ËÍǰµÄ×îºóÒ»ÌõAI»Ø´ðºÍÊýÁ¿
  730.     var ·¢ËÍǰ»Ø´ðÁбí = ²É¼¯AI»Ø´ðÁбí(xml);
  731.     var ·¢ËÍǰ»Ø´ðÊýÁ¿ = ·¢ËÍǰ»Ø´ðÁбí.length;
  732.     var ·¢ËÍǰ×îºóÎı¾ = "";
  733.     if (·¢ËÍǰ»Ø´ðÁбí.length > 0) {
  734.         ·¢ËÍǰ×îºóÎı¾ = ·¢ËÍǰ»Ø´ðÁбí[·¢ËÍǰ»Ø´ðÁбí.length - 1];
  735.     }
  736.     print.log("✓ ·¢ËÍǰ»Ø´ðÊýÁ¿£º" + ·¢ËÍǰ»Ø´ðÊýÁ¿ + "£¬×îºóÎı¾£º'" + ·¢ËÍǰ×îºóÎı¾ + "'");

  737.     // ²½Öè5£ºµã»÷¼ÓºÅ°´Å¥´ò¿ª¸½¼þ²Ëµ¥
  738.     print.log("\n========== ²½Öè5£ºµã»÷¼ÓºÅ°´Å¥´ò¿ª¸½¼þ²Ëµ¥ ==========");
  739.     var ¼ÓºÅ°´Å¥ = ²éÕҼӺŰ´Å¥(xml);
  740.     agent.click(¼ÓºÅ°´Å¥.x, ¼ÓºÅ°´Å¥.y);
  741.     print.log("✓ Òѵã»÷¼ÓºÅ°´Å¥£¬×ø±ê(" + Math.round(¼ÓºÅ°´Å¥.x) + "," + Math.round(¼ÓºÅ°´Å¥.y) + ")");
  742.     sleep.second(Ãë = 2);

  743.     // ²½Öè6£ºÑ¡ÔñÏà²á»òͼƬ
  744.     print.log("\n========== ²½Öè6£ºÑ¡ÔñÏà²á»òͼƬ ==========");
  745.     var Ïà²áÑ¡Ôñ³É¹¦ = false;
  746.     var ³¢ÊÔ´ÎÊý = 0;
  747.     while (!Ïà²áÑ¡Ôñ³É¹¦ && ³¢ÊÔ´ÎÊý < 5) {
  748.         ³¢ÊÔ´ÎÊý++;
  749.         xml = »ñÈ¡UI();
  750.         
  751.         if (ÊÇ·ñÔÚϵͳÏà²áÒ³Ãæ(xml)) {
  752.             print.log("✓ ÒѽøÈëϵͳÏà²áÒ³Ãæ");
  753.             Ïà²áÑ¡Ôñ³É¹¦ = true;
  754.             break;
  755.         }
  756.         
  757.         var Ïà²áÑ¡Ïî = ²éÕÒÏà²áÑ¡Ïî(xml);
  758.         if (Ïà²áÑ¡Ïî) {
  759.             agent.click(Ïà²áÑ¡Ïî.x, Ïà²áÑ¡Ïî.y);
  760.             print.log("✓ Òѵã»÷Ïà²áÑ¡Ïî£¬×ø±ê(" + Math.round(Ïà²áÑ¡Ïî.x) + "," + Math.round(Ïà²áÑ¡Ïî.y) + ")");
  761.             sleep.second(Ãë = 2);
  762.             Ïà²áÑ¡Ôñ³É¹¦ = true;
  763.             break;
  764.         }
  765.         
  766.         var imgCount = (xml.match(/class="android\.widget\.ImageView"/g) || []).length;
  767.         if (imgCount >= 4) {
  768.             print.log("✓ ¼ÓºÅ²Ëµ¥µ×²¿ÒÑÏÔʾͼƬÁÐ±í£¨¼ì²âµ½" + imgCount + "¸öͼƬ£©");
  769.             Ïà²áÑ¡Ôñ³É¹¦ = true;
  770.             break;
  771.         }
  772.         
  773.         print.log("⚠ µÚ" + ³¢ÊÔ´ÎÊý + "´Î³¢ÊÔ£ºÎ´ÕÒµ½Ïà²áÑ¡ÏµÈ´ýÖØÊÔ");
  774.         sleep.second(Ãë = 1);
  775.     }

  776.     // ²½Öè7£ºÑ¡ÔñµÚÒ»ÕÅͼƬ£¨´¦ÀíϵͳÏà²áºÍͼƬԤÀÀÒ³Ãæ£©
  777.     print.log("\n========== ²½Öè7£ºÑ¡ÔñµÚÒ»ÕÅͼƬ ==========");
  778.     var ͼƬѡÔñ³É¹¦ = false;
  779.     var ͼƬ³¢ÊÔ´ÎÊý = 0;
  780.     while (!ͼƬѡÔñ³É¹¦ && ͼƬ³¢ÊÔ´ÎÊý < 10) {
  781.         Í¼Æ¬³¢ÊÔ´ÎÊý++;
  782.         xml = »ñÈ¡UI();
  783.         
  784.         if (ͼƬ³¢ÊÔ´ÎÊý === 1) {
  785.             var pkgMatch = xml.match(/package="([^"]+)"/);
  786.             print.log("µ÷ÊÔ£ºµ±Ç°°üÃû=" + (pkgMatch ? pkgMatch[1] : "δ֪"));
  787.             print.log("µ÷ÊÔ£ºXMLǰ300×Ö·û=" + xml.substring(0, 300));
  788.             print.log("µ÷ÊÔ£ºÊÇ·ñÓÐedConversationInput=" + (xml.indexOf("edConversationInput") !== -1));
  789.             print.log("µ÷ÊÔ£ºÊÇ·ñÓÐchat_recycler_view=" + (xml.indexOf("chat_recycler_view") !== -1));
  790.             var dbgImgCount = (xml.match(/class="android\.widget\.ImageView"/g) || []).length;
  791.             print.log("µ÷ÊÔ£ºImageViewÊýÁ¿=" + dbgImgCount);
  792.         }
  793.         
  794.         if (ÊÇ·ñÔÚͼƬԤÀÀÒ³Ãæ(xml)) {
  795.             var È·Èϰ´Å¥ = ²éÕÒͼƬԤÀÀÈ·Èϰ´Å¥(xml);
  796.             agent.click(È·Èϰ´Å¥.x, È·Èϰ´Å¥.y);
  797.             print.log("✓ Òѵã»÷ͼƬԤÀÀÈ·Èϰ´Å¥£¬×ø±ê(" + Math.round(È·Èϰ´Å¥.x) + "," + Math.round(È·Èϰ´Å¥.y) + ")");
  798.             Í¼Æ¬Ñ¡Ôñ³É¹¦ = true;
  799.             sleep.second(Ãë = 3);
  800.             break;
  801.         }
  802.         
  803.         if (ÊÇ·ñÔÚϵͳÏà²áÒ³Ãæ(xml)) {
  804.             var µÚÒ»ÕÅͼƬ = ²éÕÒµÚÒ»ÕÅͼƬ(xml);
  805.             if (µÚÒ»ÕÅͼƬ) {
  806.                 agent.click(µÚÒ»ÕÅͼƬ.x, µÚÒ»ÕÅͼƬ.y);
  807.                 print.log("✓ Òѵã»÷µÚÒ»ÕÅͼƬÓÒÉϽÇСԲµã£¬×ø±ê(" + Math.round(µÚÒ»ÕÅͼƬ.x) + "," + Math.round(µÚÒ»ÕÅͼƬ.y) + ")");
  808.                 sleep.second(Ãë = 2);
  809.                
  810.                 xml = »ñÈ¡UI();
  811.                 var Ñ¡Ôñ°´Å¥ = ²éÕÒÏà²áÑ¡Ôñ°´Å¥(xml);
  812.                 if (Ñ¡Ôñ°´Å¥) {
  813.                     agent.click(Ñ¡Ôñ°´Å¥.x, Ñ¡Ôñ°´Å¥.y);
  814.                     print.log("✓ Òѵã»÷Ñ¡Ôñ°´Å¥£¬×ø±ê(" + Math.round(Ñ¡Ôñ°´Å¥.x) + "," + Math.round(Ñ¡Ôñ°´Å¥.y) + ")");
  815.                     Í¼Æ¬Ñ¡Ôñ³É¹¦ = true;
  816.                     sleep.second(Ãë = 3);
  817.                     break;
  818.                 } else {
  819.                     print.log("⚠ µÚ" + ͼƬ³¢ÊÔ´ÎÊý + "´Î£ºÎ´ÕÒµ½Ñ¡Ôñ°´Å¥£¬ÖØÐ»ñÈ¡XMLÖØÊÔ");
  820.                     sleep.second(Ãë = 1);
  821.                     continue;
  822.                 }
  823.             } else {
  824.                 print.log("⚠ ϵͳÏà²áδÕÒµ½Í¼Æ¬");
  825.                 sleep.second(Ãë = 1);
  826.                 continue;
  827.             }
  828.         }
  829.         
  830.         print.log("⚠ µÚ" + ͼƬ³¢ÊÔ´ÎÊý + "´Î³¢ÊÔ£ºÎ´¼ì²âµ½Ïà²áÒ³Ãæ£¬µÈ´ýÖØÊÔ");
  831.         sleep.second(Ãë = 1);
  832.     }

  833.     // ²½Öè8£ºµÈ´ýͼƬÌí¼Óµ½ÊäÈëÇøÓò£¨µÈ´ý»Øµ½Ôª±¦¶Ô»°Ò³Ã棩
  834.     print.log("\n========== ²½Öè8£ºµÈ´ýͼƬÌí¼Óµ½ÊäÈëÇøÓò ==========");
  835.     var ͼƬÌí¼Ó³É¹¦ = false;
  836.     var µÈ´ý³¢ÊÔ´ÎÊý = 0;
  837.     while (!ͼƬÌí¼Ó³É¹¦ && µÈ´ý³¢ÊÔ´ÎÊý < 10) {
  838.         µÈ´ý³¢ÊÔ´ÎÊý++;
  839.         xml = »ñÈ¡UI();
  840.         
  841.         var packageMatch = xml.match(/package="([^"]+)"/);
  842.         if (packageMatch && packageMatch[1] === Ôª±¦°üÃû) {
  843.             print.log("✓ Òѻص½Ôª±¦¶Ô»°Ò³Ãæ");
  844.             if (xml.indexOf("edConversationInput") !== -1) {
  845.                 print.log("✓ ͼƬÒÑÌí¼Óµ½ÊäÈëÇøÓò");
  846.                 ͼƬÌí¼Ó³É¹¦ = true;
  847.                 break;
  848.             }
  849.         }
  850.         
  851.         print.log("⚠ µÚ" + µÈ´ý³¢ÊÔ´ÎÊý + "´Î³¢ÊÔ£ºÍ¼Æ¬ÉÐδÌí¼Ó£¬µÈ´ýÖØÊÔ");
  852.         sleep.second(Ãë = 1);
  853.     }
  854.    
  855.     if (!ͼƬÌí¼Ó³É¹¦) {
  856.         print.log("⚠ ¶à´ÎµÈ´ýͼƬδÌí¼Ó£¬¼ÌÐøºóÐø²½Öè");
  857.     }

  858.     // ²½Öè9£ºÕ³ÌùÎÄ×ÖѯÎÊÍ϶¯¾àÀë
  859.     print.log("\n========== ²½Öè9£ºÕ³ÌùÎÄ×ÖѯÎÊÍ϶¯¾àÀë ==========");
  860.     xml = »ñÈ¡UI();
  861.     var ÊäÈë¿ò = ²éÕÒÊäÈë¿òÖÐÐÄ(xml);
  862.     var AI»Ø´ð = null;
  863.     if (ÊäÈë¿ò) {
  864.         agent.click(ÊäÈë¿ò.x, ÊäÈë¿ò.y);
  865.         sleep.second(Ãë = 1);
  866.         Õ³ÌùÎı¾(ÌáÎÊ»°Êõ);
  867.         print.log("✓ ÒÑÕ³ÌùÎı¾£º" + ÌáÎÊ»°Êõ);
  868.         sleep.second(Ãë = 2);

  869.         // ²½Öè10£º·¢ËÍͼƬºÍÎÄ×Ö
  870.         print.log("\n========== ²½Öè10£º·¢ËÍͼƬºÍÎÄ×Ö ==========");
  871.         xml = »ñÈ¡UI();
  872.         var ·¢ËͰ´Å¥ = ²éÕÒ·¢ËͰ´Å¥ÖÐÐÄ(xml);
  873.         if (·¢ËͰ´Å¥) {
  874.             agent.click(·¢ËͰ´Å¥.x, ·¢ËͰ´Å¥.y);
  875.             print.log("✓ Òѵã»÷·¢ËͰ´Å¥£¬×ø±ê(" + Math.round(·¢ËͰ´Å¥.x) + "," + Math.round(·¢ËͰ´Å¥.y) + ")");
  876.         } else {
  877.             agent.shell("input keyevent 66");
  878.             print.log("⚠ δÕÒµ½·¢ËͰ´Å¥£¬Òѳ¢ÊÔ°´»Ø³µ·¢ËÍ");
  879.         }
  880.         sleep.second(Ãë = 3);

  881.         // ²½Öè11£ºµÈ´ýÔª±¦AI»Ø´ð
  882.         print.log("\n========== ²½Öè11£ºµÈ´ýÔª±¦AI»Ø´ð ==========");
  883.         AI»Ø´ð = µÈ´ýAI»Ø´ðÍê³É(·¢ËÍǰ×îºóÎı¾, ·¢ËÍǰ»Ø´ðÊýÁ¿);
  884.     } else {
  885.         print.log("⚠ δÕÒµ½ÊäÈë¿ò");
  886.     }
  887.    
  888.     if (!AI»Ø´ð) {
  889.         print.log("✗ δ»ñÈ¡µ½AI»Ø´ð");
  890.         print.log("===== Ôª±¦Ê¶±ðÑéÖ¤ÂëÍ϶¯BÕ¾Á÷³Ì½áÊø =====");
  891.         return;
  892.     }

  893.     print.log("\n✓ ²É¼¯µ½AI»Ø´ð");
  894.     print.log("--- ²É¼¯ÄÚÈÝ¿ªÊ¼ ---");
  895.     print.log(AI»Ø´ð);
  896.     print.log("--- ²É¼¯ÄÚÈݽáÊø ---");

  897.     // ²½Öè12£º½âÎöÍ϶¯¾àÀë×ø±ê
  898.     print.log("\n========== ²½Öè12£º½âÎöÍ϶¯¾àÀë×ø±ê ==========");
  899.     print.log("✓ AIԭʼ»Ø´ð£º'" + AI»Ø´ð + "'");
  900.    
  901.     var ËùÓÐÊý×Ö = AI»Ø´ð.match(/\d+/g);
  902.     var Í϶¯¾àÀëÏñËØ = null;
  903.     var AIͼÏñ¿í¶È = null;
  904.    
  905.     if (ËùÓÐÊý×Ö && ËùÓÐÊý×Ö.length >= 2) {
  906.         var Êý×ÖÁбí = [];
  907.         for (var i = 0; i < ËùÓÐÊý×Ö.length; i++) {
  908.             Êý×ÖÁбí.push(parseInt(ËùÓÐÊý×Ö[i]));
  909.         }
  910.         print.log("✓ ÌáÈ¡µ½ËùÓÐÊý×Ö£º" + Êý×ÖÁбí.join(", "));
  911.         
  912.         if (Êý×ÖÁбí.length >= 5) {
  913.             var x1 = Êý×ÖÁбí[0];
  914.             var y1 = Êý×ÖÁбí[1];
  915.             var x2 = Êý×ÖÁбí[2];
  916.             var y2 = Êý×ÖÁбí[3];
  917.             AIͼÏñ¿í¶È = Êý×ÖÁбí[4];
  918.             Í϶¯¾àÀëÏñËØ = Math.abs(x2 - x1);
  919.             print.log("✓ ʶ±ðµ½Á½×é×ø±ê+ͼÏñ¿í¶È£º(" + x1 + "," + y1 + ") ºÍ (" + x2 + "," + y2 + ")£¬Í¼Ïñ¿í¶È=" + AIͼÏñ¿í¶È);
  920.             print.log("✓ ¼ÆËãÍ϶¯¾àÀ룺|x2 - x1| = |" + x2 + " - " + x1 + "| = " + Í϶¯¾àÀëÏñËØ);
  921.         } else if (Êý×ÖÁбí.length >= 4) {
  922.             var x1 = Êý×ÖÁбí[0];
  923.             var y1 = Êý×ÖÁбí[1];
  924.             var x2 = Êý×ÖÁбí[2];
  925.             var y2 = Êý×ÖÁбí[3];
  926.             Í϶¯¾àÀëÏñËØ = Math.abs(x2 - x1);
  927.             AIͼÏñ¿í¶È = Math.max(x1, x2) + 100;
  928.             print.log("✓ ʶ±ðµ½Á½×é×ø±ê¸ñʽ£º(" + x1 + "," + y1 + ") ºÍ (" + x2 + "," + y2 + ")");
  929.             print.log("✓ ¼ÆËãÍ϶¯¾àÀ룺|x2 - x1| = |" + x2 + " - " + x1 + "| = " + Í϶¯¾àÀëÏñËØ);
  930.             print.log("✓ ¹ÀËãͼÏñ¿í¶È£ºmax(x1,x2)+100 = " + AIͼÏñ¿í¶È);
  931.         } else if (Êý×ÖÁбí.length >= 2) {
  932.             var ×ø±êÆ¥Åä = AI»Ø´ð.match(/(\d+)\s*[,£¬]\s*(\d+)/);
  933.             if (×ø±êÆ¥Åä) {
  934.                 var cx1 = parseInt(×ø±êÆ¥Åä[1]);
  935.                 var cx2 = parseInt(×ø±êÆ¥Åä[2]);
  936.                 Í϶¯¾àÀëÏñËØ = Math.abs(cx2 - cx1);
  937.                 AIͼÏñ¿í¶È = Math.max(cx1, cx2) + 100;
  938.                 print.log("✓ ʶ±ðµ½×ø±ê¸ñʽ£º(" + cx1 + "," + cx2 + ")£¬¼ÆËã¾àÀ룺" + Í϶¯¾àÀëÏñËØ);
  939.             } else {
  940.                 Í϶¯¾àÀëÏñËØ = Êý×ÖÁбí[0];
  941.                 print.log("✓ ÌáÈ¡µ½µ¥¸öÊý×Ö£¨Í϶¯¾àÀ룩£º" + Í϶¯¾àÀëÏñËØ);
  942.             }
  943.         } else {
  944.             Í϶¯¾àÀëÏñËØ = Êý×ÖÁбí[0];
  945.             print.log("✓ ÌáÈ¡µ½µ¥¸öÊý×Ö£¨Í϶¯¾àÀ룩£º" + Í϶¯¾àÀëÏñËØ);
  946.         }
  947.     } else if (ËùÓÐÊý×Ö && ËùÓÐÊý×Ö.length === 1) {
  948.         Í϶¯¾àÀëÏñËØ = parseInt(ËùÓÐÊý×Ö[0]);
  949.         print.log("✓ ÌáÈ¡µ½µ¥¸öÊý×Ö£¨Í϶¯¾àÀ룩£º" + Í϶¯¾àÀëÏñËØ);
  950.     } else {
  951.         print.log("✗ δÕÒµ½ÓÐЧµÄÍ϶¯¾àÀë");
  952.         print.log("===== Ôª±¦Ê¶±ðÑéÖ¤ÂëÍ϶¯BÕ¾Á÷³Ì½áÊø =====");
  953.         return;
  954.     }
  955.    
  956.     var ͼÏñËõ·ÅϵÊý = 1.0;
  957.     if (AIͼÏñ¿í¶È && AIͼÏñ¿í¶È > 0 && AIͼÏñ¿í¶È < ÆÁÄ»¿í) {
  958.         Í¼ÏñËõ·ÅϵÊý = ÆÁÄ»¿í / AIͼÏñ¿í¶È;
  959.         if (ͼÏñËõ·ÅϵÊý > 5) {
  960.             Í¼ÏñËõ·ÅϵÊý = 1.0;
  961.         } else {
  962.             Í϶¯¾àÀëÏñËØ = Math.round(Í϶¯¾àÀëÏñËØ * ͼÏñËõ·ÅϵÊý);
  963.             print.log("✓ ͼÏñËõ·Å²¹³¥£ºAIͼÏñ¿í¶È=" + AIͼÏñ¿í¶È + "£¬ÆÁÄ»¿í=" + ÆÁÄ»¿í);
  964.             print.log("✓ Ëõ·ÅϵÊý=" + ͼÏñËõ·ÅϵÊý.toFixed(2) + "£¬²¹³¥ºóÍ϶¯¾àÀë=" + Í϶¯¾àÀëÏñËØ);
  965.         }
  966.     } else if (Í϶¯¾àÀëÏñËØ < 200) {
  967.         Í¼ÏñËõ·ÅϵÊý = ÆÁÄ»¿í / 750;
  968.         Í϶¯¾àÀëÏñËØ = Math.round(Í϶¯¾àÀëÏñËØ * ͼÏñËõ·ÅϵÊý);
  969.         print.log("✓ µ¥Êý×Öģʽ²¹³¥£º¼ÙÉèAIͼÏñ¿í¶È¡Ö750£¬Ëõ·ÅϵÊý=" + ͼÏñËõ·ÅϵÊý.toFixed(2));
  970.         print.log("✓ ²¹³¥ºóÍ϶¯¾àÀë=" + Í϶¯¾àÀëÏñËØ);
  971.     }
  972.    
  973.     ÑéÖ¤Â뻬¿é¾àÀë = {
  974.         x: Í϶¯¾àÀëÏñËØ,
  975.         y: 0
  976.     };

  977.     // ²½Öè13£ºÇл»»ØBÕ¾²¢Í϶¯»¬¿é
  978.     print.log("\n========== ²½Öè13£ºÇл»»ØBÕ¾²¢Í϶¯»¬¿é ==========");
  979.    
  980.     agent.shell("input keyevent 187");
  981.     print.log("✓ ÒѰ´ºǫ́¼ü´ò¿ªÈÎÎñÁбí");
  982.     sleep.second(Ãë = 2);
  983.    
  984.     xml = »ñÈ¡UI();
  985.     var biliIdx = xml.indexOf('ßÙÁ¨ßÙÁ¨');
  986.     if (biliIdx === -1) {
  987.         biliIdx = xml.indexOf('bilibili');
  988.     }
  989.     if (biliIdx === -1) {
  990.         biliIdx = xml.indexOf('BÕ¾');
  991.     }
  992.    
  993.     if (biliIdx !== -1) {
  994.         var ¶Î = xml.substring(biliIdx);
  995.         var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  996.         if (m) {
  997.             var clickX = (parseInt(m[1]) + parseInt(m[3])) / 2;
  998.             var clickY = (parseInt(m[2]) + parseInt(m[4])) / 2;
  999.             agent.click(clickX, clickY);
  1000.             print.log("✓ Òѵã»÷BÕ¾ÈÎÎñ¿¨Æ¬£¬×ø±ê(" + Math.round(clickX) + "," + Math.round(clickY) + ")");
  1001.         }
  1002.     } else {
  1003.         print.log("⚠ δÕÒµ½BÕ¾ÈÎÎñ¿¨Æ¬£¬³¢ÊÔÖ±½Ó´ò¿ª");
  1004.         try {
  1005.             app.openApp(BÕ¾°üÃû);
  1006.             print.log("✓ ÒÑ´ò¿ªBÕ¾");
  1007.         } catch (e) {
  1008.             print.log("⚠ ´ò¿ªBվʧ°Ü£º" + e.message);
  1009.         }
  1010.     }
  1011.     sleep.second(Ãë = 3);

  1012.     xml = »ñÈ¡UI();
  1013.     var ÑéÖ¤ÂëÇøÓò×ó±ß½ç = ÆÁÄ»¿í * 0.15;
  1014.    
  1015.     var »¬¿é¹ìµÀÆ¥Åä = xml.match(/<node[^>]*?text="Í϶¯»¬¿éÍê³Éƴͼ"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  1016.     if (»¬¿é¹ìµÀÆ¥Åä) {
  1017.         ÑéÖ¤ÂëÇøÓò×ó±ß½ç = parseInt(»¬¿é¹ìµÀÆ¥Åä[1]);
  1018.     }

  1019.     var Í϶¯¾àÀë = ÑéÖ¤Â뻬¿é¾àÀë.x * »¬¿éУ׼ϵÊý;

  1020.     var startX = ÑéÖ¤ÂëÇøÓò×ó±ß½ç + 50;
  1021.     var startY = ÆÁÄ»¸ß * 0.42;
  1022.     var endX = startX + Í϶¯¾àÀë;
  1023.     var endY = startY;

  1024.     print.log("✓ ÑéÖ¤ÂëÇøÓò×ó±ß½ç: " + ÑéÖ¤ÂëÇøÓò×ó±ß½ç + ", Í϶¯¾àÀë: " + Í϶¯¾àÀë);
  1025.     agent.swip(startX, startY, endX, endY, 2000);
  1026.     print.log("✓ ÒÑÍ϶¯»¬¿é£¬Æðµã(" + Math.round(startX) + "," + Math.round(startY) + ")£¬ÖÕµã(" + Math.round(endX) + "," + Math.round(endY) + ")");
  1027. }

  1028. Ö÷Á÷³Ì();

  1029. print.log("\n===== Ôª±¦Ê¶±ðÑéÖ¤ÂëÍ϶¯BÕ¾Á÷³Ì½áÊø =====");
¸´ÖÆ´úÂë


»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

±¾°æ»ý·Ö¹æÔò

¹Ø±Õ

QQ|»ÓªÏúÈí¼þ×ÛºÏÌÖÂÛ|»ÓªÏúÈí¼þÓÐÎʱشð|»ÓªÏúÈí¼þ½Ì³Ì×¨Çø|»ÓªÏúÈí¼þPOST½Å±¾·ÖÏí|»ÓªÏúÈí¼þÆÕͨ½Å±¾·ÖÏí|»ÓªÏúÈí¼þÈí¼þ×ÊѶ|»ÓªÏúÈí¼þ¾«Æ·Èí¼þ|»ÓªÏúÈí¼þ¸üй«¸æ|ÓªÏúÈí¼þ|B2BÈí¼þ|B2BÍøÂçÈí¼þ ( ¾©ICP±¸09078825ºÅ )±¾ÍøÕ¾¿ª·¢µÄÓªÏúÈí¼þÊÇÒ»¿îеÄÍøÂçÓªÏúÈí¼þ£¬Õâ¿îÓªÏú¿ÉÒÔÈ¥ÍøÕ¾Èí¼þ£¬²©¿ÍÈí¼þ£¬B2BÈí¼þ£¬·ÖÀàÐÅÏ¢Íø·¢Ìù£¬¿ÉÒÔÇÀɳ·¢£¬¿ÉÒÔµ½°Ù¶ÈÎÄ¿âÉÏ´«WORDÎĵµ£¬¿ÉÒÔµ½Ò»Ð©ÊÇÏà²áÍøÕ¾×Ô¶¯ÉÏ´«Í¼Æ¬£¬Õâ¸ö×Ô¶¯·¢ÌûÈí¼þ×Ô´øÔÆÖ©Ö룬¼Ó¿ìÊÕ¼£¬ÓÐ6ÖÖ¶Ô½Ó´òÂë½Ó¿Ú£¬·½±ã£¬Ð§Âʸߣ¬Ëٶȿ죬¶øÇÒ¶ÔÍ϶¯µÄÑéÖ¤ÂëÈ«ÍøµÚÒ»¼Ò¶À¼ÒÖ§³Ö£¬È«²¿Ô­´´¼¼Êõ£¬¶À¼ÒÑз¢£¬Õý°æÔ­´´´ø°æÈ¨Èí¼þ¡£Ñ¡ÔñÍòÄÜÓªÏúÈí¼þ£¬¾ÍÑ¡ÔñÁËÒ»ÖÖ׬ǮµÄЧÂÊ£¬´ÓûÓб»³¬Ô½¹ý£¬Ò»Ö±ÔÚŬÁ¦Ñз¢Ð¼¼Êõ¡£·Å·ÉÃÎÏ룬½â·ÅË«ÊÖ£¬À´µã´´Ò⣬³É¾ÍÄãµÄÃÎÏ룬¾ÍÔÚÍòÄÜÓªÏúÈí¼þ¿ªÊ¼

map2

GMT+8, 2026-7-16 07:41 , Processed in 0.319908 second(s), 34 queries .

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí