|
using System;using System.Collections.Generic;using System.Runtime.Serialization;using System.Threading;using System.Windows.Media;namespace mysss{ public class Class1 : AndroidControlSDK.AndroidScript //继承AndroidControlSDK.AndroidScript来实现插件… # v" M3 h' i6 `2 P: V8 g
: c) N4 q8 y% W4 T
using System;
" [7 I9 Q( p4 o! D) p0 D/ { using System.Collections.Generic;
7 g+ ^! ~' s, {8 e+ r# y+ K using System.Runtime.Serialization;6 i' O* B: x9 M2 V
using System.Threading;
, h- K& N9 _/ V' [! S7 H using System.Windows.Media;
* M: q- Q8 a" X$ e {) s: V
5 c8 L( }0 z* `/ M8 [1 O9 k namespace mysss
/ i% q3 v' G# C' Z m {
+ k8 u7 l2 }- Y0 i0 ?5 R & Q- i; ` d! @. \, ]' ]; c& z/ J
public class Class1 : AndroidControlSDK.AndroidScript //继承AndroidControlSDK.AndroidScript来实现插件功能1 b8 c; T N* M+ O
{( b; p4 y" s6 d" v, i: k
public override string Name()0 G) i4 Z6 J( G
{* ~ ~# i$ _" c. ^1 H
//返回插件的名称2 z" f8 Q% I& r5 {
return "自动给附近的人打招呼";
/ u8 e, S* M- E+ ` }8 N6 X7 W5 h. e3 P4 m/ E8 C; c3 J
/ z2 j* R4 u) ?' Y+ j
public override string Description()
" v3 c! B0 B! r8 ^ {
: M' a2 s5 }. U+ W) U //返回插件的描述
: V# B! Z1 l4 W: |8 g return "这是一个演示脚本";
9 {8 Q3 g/ V; a }2 o' E5 T0 x( t0 D
: x( Z3 g+ N9 S, Z9 k. V7 @4 q( L //这个方法是插件的执行主体,所有功能都在这里执行* H# t$ G6 U3 N- D0 ]: l( C/ b: Z
public override void RunScript()4 w3 V2 n' I( t: u( S) Z' G2 d
{' Y+ }3 M$ F, q1 b& |+ {, Y
//显示调试日志,正式用时可以不开启这个
( w1 r0 t# E8 {$ D( E8 n ShowLogConsole();) a& O6 ^, s* k
9 L( w, M; o4 G8 e4 b0 i7 o
//在手机屏幕上显示运行状态9 ]2 X- I5 {% @. q6 E8 v
ShowStatus("正在打开附近的人..", Color.FromRgb(78, 17, 255));
6 R3 f1 {- b) Y2 {2 D
( D/ E1 F0 B3 i3 m- s) o% x //打开附近的人界面,这个具体参数请查看开发博客, K5 `# [6 C/ F3 ]6 h9 S7 Q8 A
var dic = new Dictionary<string, string> { { "act", "opennearui" } };
2 P) M* o# v% Q r" {3 H SendIntent(dic);' ^! _; n9 e( A: X2 I
0 O# i! i k* V& U1 i% i! U( M
//冷却1000毫秒
+ S: b3 A& A/ u, c2 M! J" }/ e Thread.Sleep(5000);
/ s2 O( E0 p1 D8 R) m 0 K$ N% ?2 l+ u* B D! h
2 }7 x" y k# S' e- F+ b/ G
//定义个int变量用于计数
+ O: z- B% p0 C2 V* G var count = 0;
" ~0 [8 i# N1 J4 {& F 8 y- m0 j# H9 T* V! j& P8 Y
//定义一个变量为打招呼的内容0 H6 A. m" H! s; I; a( {
var zhaohu = "hi,你好啊";
# u* C' b+ D1 Q) r' K4 }
' E. X, S' u# W. J8 I z0 H0 _: V //在手机屏幕上显示运行状态! r p2 @+ W+ j! f4 J
ShowStatus("正在获取附近的人“列表”..");0 x# ~9 L6 I) e: G* {
0 z+ O% U' q$ V6 G+ w) s //获取所有的昵称 com.tencent.mm:id/agg 这个是附近的人列表里的昵称资源id,这个可以通过android sdk里的 uiautomatorviewer.bat 这个工具来获取) P' C+ K) b9 m% Y, f/ f( P$ S
var nicks = GetUiTexts("com.tencent.mm:id/agg");8 d2 s9 u+ {& s8 R2 h7 \) }
% b. k$ \# p( r: s6 Q, D) M( k . r8 n9 V' Z" e) q+ m. |
Console.WriteLine("获取到的昵称数量:" + nicks.Count);5 v' G- d) a3 F! g+ Z8 f
: M" M# ~! k# B) U, n% F9 u6 P. q //循环给所有昵称打招呼 V; E: S( q" d5 _
for (var index = 0; index < nicks.Count; index++)4 M/ y6 A, T) U- l2 R
{
9 x5 t% E+ I* k6 \" ^0 T/ [ var nickname = nicks[index];- W2 e% O* ~% n
ShowStatus("正在加“" + nickname + "”[累计:" + count + "]..");
E. [4 m+ {* }3 B //查看是否包含这个昵称" @5 W2 u9 @, l* H/ y: z- {
if (FindObj(nickname).Contains("成功找到元素"))
f9 a* N5 D2 X8 J7 y7 W {
0 M& K- D; A% {3 }' F: y2 V( V9 n //包含就点击它( M$ G" G9 A8 g8 f! y T7 O2 `
if (FindAndCLickObj(nickname).Contains("true"))- j1 E* g; A! r- x3 A+ A( Z% A. m; V( P
{
! Z7 m+ P9 B: C3 x, j( Y( ` //冷却1000毫秒
3 j+ N8 Z$ r, d& c* ] Thread.Sleep(1000);/ G; `- R! V# H! x; N$ K! g' N/ y* z
//查找并点击“打招呼”0 {7 ]+ @0 H; y* g; o6 m6 Z
var result = FindAndCLickObjByRegex("打招呼");
5 f2 q" i( e& A //输出结果到日志
7 n4 r9 O! P/ o0 J Console.WriteLine(result);: I& f% ~! D( K* ~' s* S, i0 |0 }
//如果点击成功
6 r' Y. f; j3 n if (result.Contains("true"))
8 D2 W$ r! _! Y { }; S$ I: D' m& o& O& E; [! x% c
Thread.Sleep(1000);
& z: ?7 O; h2 z1 H) t( E //查找输入框输入内容
4 k/ D2 H' p# w' z FindAndInutText("android.widget.EditText", zhaohu, 0);
3 J$ o5 u& @" E7 M7 ~1 X4 ^ Thread.Sleep(2000);, L# Z$ s4 _1 h1 {$ [. k' Q' U
//添加好友
! M1 P& |4 F# B1 ^$ U5 i FindAndCLickObjByRegex("(加为朋友|发送)");6 o" F0 _/ H3 w
Thread.Sleep(1000);
" g- H6 M8 K5 u! _( h- o //返回( U3 s( j$ p/ ~6 ]$ p: L
FindAndCLickObj("返回");
5 V0 m6 c+ I6 r( j Thread.Sleep(1000);
: T: }: B: E3 q' u4 f6 P }
% \/ n4 `* ^% _" C else. o! C+ [) r+ a" ]4 N2 T, q
{
& L9 y2 ^( e1 {/ t //如果没有打招呼按钮则直接返回(一般是已经添加过了), H& Z6 n7 v/ q* a2 G" `
FindAndCLickObj("返回");
4 J* m4 D5 P# f% E [! u: y, @ }
) B8 [2 U# h3 G; E6 X: D1 B }7 t" a) ^( t: c8 i( z* e9 ~
}# i* R# ~0 I8 i7 L/ \( C, {8 f
//计数器加1; u3 H& l% R# _8 J) ^8 I
count++;
# g2 N/ q( [" w( v" y
# u0 P9 M; ]3 U0 t }
; a+ |8 f# d4 a8 [
' G6 A( Z8 x7 b$ F0 q }- ?7 h& g9 k- N: d" G* P% f3 d
' } m' e* q; K' J( ?! ^
}) L' g% U$ w/ h$ m) z% [. x
}! m* y; u# k" m
]2 c# h3 B( a, Z4 g: i- ]% ^, Q
1 h1 t5 i& y8 I0 R! l9 x) Q |
|