1. 程式人生 > >android UiAutomator如何向所有微信好友傳送一條“你好,***”開頭的祝福訊息

android UiAutomator如何向所有微信好友傳送一條“你好,***”開頭的祝福訊息

在剛過去的情人節裡,在已經過去的元宵節裡,還有過去一段時間的除夕新年等節日裡,都需要向好友傳送一條祝福訊息,最好是附帶上對方的姓名,這樣顯得不是群發的,故寫了一個方法來完成這件事情。同樣的方法也可以用到簡訊中去。

public void sendMassageToAllFriend() throws UiObjectNotFoundException {
//給微信好友發一條祝福資訊
clean();
UiDevice.getInstance().pressHome();
//開啟微信
getUiObjectByText("微信").clickAndWaitForNewWindow();
getUiObjectByText("通訊錄").clickAndWaitForNewWindow();
//建立一個朋友名字的陣列
HashSet<String> friends = new HashSet<String>();
//滾動到頂部
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;i<num-1;i++){
UiObject 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個左右,不然會報錯。由於簡訊傳送不敢輕易嘗試,暫且放棄了。