android UiAutomator如何向所有微信好友发送一条“你好,***”开头的祝福消息

在刚过去的情人节里,在已经过去的元宵节里,还有过去一段时间的除夕新年等节日里,都需要向好友发送一条祝福消息,最好是附带上对方的姓名,这样显得不是群发的,故写了一个方法来完成这件事情。同样的方法也可以用到短信中去。

public void sendMassageToAllFriend() throws UiObjectNotFoundException {
//给微信好友发一条祝福信息
clean();
UiDevice.getInstance().pressHome();
//打开微信
getUiObjectByText("微信").clickAndWaitForNewWindow();
getUiObjectByText("通讯录").clickAndWaitForNewWindow();
//建立一个朋友名字的数组
HashSet friends = new HashSet();
//滚动到顶部
getUiScrollableByResourceId("com.tencent.mm:id/hr").scrollToBeginning(5);
boolean key = true;
boolean one = false;
while(key){
//获取当前页面好友个数
int num = getUiScrollableByResourceId("com.tencent.mm:id/hr").getChildCount();
//把好友的姓名添加到数组中
for(int i=0;iUiObject friend = getUiObjectByResourceIdIntance("com.tencent.mm:id/i_", i);
String name =  friend.getText();
//排除微信团队和文件传输助手两个好友可以以后在数组中删除
if (name.equalsIgnoreCase("微信团队") || name.equalsIgnoreCase("文件传输助手")) {
outputNotable(name);
}else{
friends.add(name);
}
}
//为了滚动到底部时,再次执行上面的循环把余下的好友也添加到数组
if (one) {
break;
}
//滚动到底部时one改为true
if (!getUiScrollableByResourceId("com.tencent.mm:id/hr").scrollForward()) {
one = true;
}
}
//这个是先转换成String[]数组在向每个好友发送消息
String[] de =  (String[])(friends.toArray(new String[0]));
for(int i=0;i<10;i++){
outputNotable(de[i]);
sendMassageToFriend(de[i], "你好,"+de[i]+"祝你情人节快乐!");
}
//这个直接遍历friends中的名字发送消息
for(String x : friends){
sendMassageToFriend(x, "你好,"+x+"祝你情人节快乐!");
}
}

有一个问题就是你的好友必须超过一定的数量,大概是7个左右,不然会报错。由于短信发送不敢轻易尝试,暂且放弃了。

你可能感兴趣的:(android,uiautomator)