|
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来实现插件…
+ l6 T# a" K( E+ R
4 S2 i! | a" N3 F! s) s8 L2 c S3 D using System;, H2 \0 c, d) \2 Q" }
using System.Collections.Generic;, l4 _$ p" p6 V1 L: o" P
using System.Runtime.Serialization; p5 P8 I8 }0 ^% G5 _
using System.Threading;
3 d5 c4 y( ` k5 h$ W% ~ using System.Windows.Media;' Z/ A7 n; I; P+ p, U
9 g7 I6 ^2 c/ I namespace mysss+ t7 x3 `. _4 s8 C+ I: M
{% W4 ~( z: ?( f8 {
* I2 k) }! D, l8 L, V; y public class Class1 : AndroidControlSDK.AndroidScript //继承AndroidControlSDK.AndroidScript来实现插件功能0 I) t3 [# A, J; h
{3 Z- P+ n. ?8 r) }# C) E! M
public override string Name()
/ V+ W' s ?3 e: s$ q# D, A1 I {( D; L7 A Y& G& j
//返回插件的名称6 q* r: e" A' V1 C( L( G
return "自动给附近的人打招呼";8 K' H% V0 h1 g) `7 U) e
}
3 U7 A0 ^5 H3 P. f: P. b9 c / p7 M! z2 W x0 d5 Q4 r/ P
public override string Description()
9 P- a y4 i4 Q0 b {5 l7 P/ `) Y* Z* L2 p: I2 Z
//返回插件的描述
# t5 g$ i, |. D2 L- m6 j; p return "这是一个演示脚本";
1 c/ f+ }6 N: F+ S }
9 `( o1 x5 m0 w5 ?; Q$ v1 h* f
7 l3 x$ h/ _& Z; T0 Q1 `. r //这个方法是插件的执行主体,所有功能都在这里执行7 @% ]1 w' @9 m7 x% b
public override void RunScript()
3 k: q- x" o; m0 k6 b$ N {
5 X' a& V( a0 u# L+ d2 x //显示调试日志,正式用时可以不开启这个$ F3 j. G# Z- s* m& t f) l1 K$ z
ShowLogConsole();
3 {+ N. P) J5 z4 G! z9 H+ ~$ Q
6 g) h: r$ C# |( s //在手机屏幕上显示运行状态/ D( `& p" ?5 E2 D' I) a8 `$ M
ShowStatus("正在打开附近的人..", Color.FromRgb(78, 17, 255));1 Y+ P6 H& c+ r2 A
4 C7 T9 o* ~$ X3 d //打开附近的人界面,这个具体参数请查看开发博客
# o+ W% u$ o! G" J$ X6 M* ] var dic = new Dictionary<string, string> { { "act", "opennearui" } };% W" h! K( h$ M( H+ o
SendIntent(dic);& @2 ` H8 V# ~
3 H& M8 K" G! T6 D //冷却1000毫秒
B0 C' c8 i4 @ Thread.Sleep(5000);
% \3 }( Q& t' B3 D( R1 f% z- }
* j; I# x7 A: s' D6 \5 g
+ O5 e7 W) s$ J( A1 T0 k/ y$ Z1 W //定义个int变量用于计数: z# \! D: f% u# w( }
var count = 0; X) u9 E; r, U6 i3 b4 |
& H& I/ V: e6 B" Y( C' I5 ? //定义一个变量为打招呼的内容
h1 u1 z, `: j5 u var zhaohu = "hi,你好啊";- R0 O6 v) Z, j% {0 R0 S
, b% D/ N% g! i: \3 `- E S
//在手机屏幕上显示运行状态% L0 i6 {7 o' m7 E
ShowStatus("正在获取附近的人“列表”..");
+ v' e: C! @) y+ m4 j" B$ c " a- o! j( t$ B1 K; m5 h
//获取所有的昵称 com.tencent.mm:id/agg 这个是附近的人列表里的昵称资源id,这个可以通过android sdk里的 uiautomatorviewer.bat 这个工具来获取
( ^, a! j- `1 V2 D) }0 z, ^ var nicks = GetUiTexts("com.tencent.mm:id/agg");
' x2 P0 z8 w8 o0 M& K- r; @
( d% | G* l+ k) C2 J0 p5 J4 ~' ~
: [8 h( [& x1 }- d$ H Console.WriteLine("获取到的昵称数量:" + nicks.Count);$ n Z; r* t& P; D& s! {1 `
; H; f' L9 o' ~# D" a
//循环给所有昵称打招呼6 ?" k& K" k* W; g( F
for (var index = 0; index < nicks.Count; index++)
5 l0 Z% u% W3 t/ N) C& R {
) v: G8 U! @8 S& V7 l2 l# ^- m var nickname = nicks[index];
# ]0 d9 B4 y% p' z ShowStatus("正在加“" + nickname + "”[累计:" + count + "]..");
: k+ Q5 e. A* i7 L //查看是否包含这个昵称
) E- B! y/ V) z* L$ s if (FindObj(nickname).Contains("成功找到元素"))
7 k2 }7 J& C* e y+ N {/ q9 R# b }$ i" k& g7 Y
//包含就点击它
; v# d5 ]$ w1 h% J/ Q if (FindAndCLickObj(nickname).Contains("true")), R2 D4 l. H% ~1 o' a, `
{' f$ G. o7 _6 ~5 Q& n
//冷却1000毫秒
) D$ U3 J0 n. E2 q4 i% H Thread.Sleep(1000);* G# E( [4 W v8 k& ^
//查找并点击“打招呼”3 f0 m" `8 X8 o/ j0 X; b* o
var result = FindAndCLickObjByRegex("打招呼");
& g- ]/ w" ~7 w( e //输出结果到日志3 ?( x, u ~1 `; y" ^, q
Console.WriteLine(result);( y& E6 e7 k4 H9 o8 p
//如果点击成功
* w) I' ]% r& j! B9 W# ? if (result.Contains("true")), n$ S4 v& c2 v% c/ p0 r4 `# h
{ x- B. o- ~! R% H
Thread.Sleep(1000);
" ]% B1 H. z! s' ` C //查找输入框输入内容
7 |- x1 T4 c9 U; X8 g FindAndInutText("android.widget.EditText", zhaohu, 0);
4 }, k3 X3 T! x- N/ Y2 ]1 r Thread.Sleep(2000);) x$ g2 I3 S& I
//添加好友
9 g3 t0 e6 l j/ w8 a+ V FindAndCLickObjByRegex("(加为朋友|发送)");% D" o* p9 E! q7 g# ^" h# F
Thread.Sleep(1000);
7 l( a. Z: b5 E- S" Y. h7 ?, x //返回+ g% U( |6 _! L2 o1 y
FindAndCLickObj("返回");1 D0 Z, w! n2 ]
Thread.Sleep(1000);# T3 E- H, z. J* z
}* i9 G; _2 Q8 X: h l
else
) P+ J% \% P5 t5 ~ {
: ?, p, d5 W2 ^ //如果没有打招呼按钮则直接返回(一般是已经添加过了)
9 [; B: T; e( k3 X3 B A5 J8 q FindAndCLickObj("返回");" N; Q8 F! Y/ U/ m, _; ~2 u
}; ~' I4 C. Q1 x1 z7 |! d3 m
}
; _! k) \+ a8 o% l; ~ }
2 w; A- L. k/ e5 ?2 U# R f1 f //计数器加1
) g; U, t) _8 {0 G count++;& o- w) J* I' p" `
/ Q9 K8 n& _# u$ y
}
4 x/ N1 p F; ^; D1 f
1 s4 K* D @2 I: v) J+ i5 R% } }) L# e7 W) a" B# c
' O* r) s! _+ ?7 L2 { Q
}" [! L3 M ~, J: }- L ^
}0 _! i- z! g6 |! \
$ V: X7 H( H% f7 k$ e2 }* _ g4 n# Q+ s
3 i6 e: I( s: L; k9 s
|
|