Android Accessibility实践 程序检查微信被删好友
原理
通過Android 無障礙輔助功能實(shí)現(xiàn)模擬點(diǎn)擊控件來實(shí)現(xiàn)
檢查被刪好友有兩種方法:
向好友發(fā)送一條消息,如果對(duì)方已經(jīng)把你刪除,則消息發(fā)送失敗。
建群法:新建一個(gè)不大于40人的群,如果其中有好友已經(jīng)把你刪除,微信會(huì)有條消息提示
整體執(zhí)行步驟:啟動(dòng)微信->點(diǎn)擊+號(hào)->發(fā)起群聊->選擇35個(gè)聯(lián)系人->點(diǎn)擊確定->點(diǎn)擊群里詳情->刪除并退出,依次輪詢執(zhí)行,知道所有好友輪詢結(jié)束
本文采用建群的方式進(jìn)行檢查。
本人微信有300好友,全部檢測一遍只需3分鐘即可,親測已經(jīng)成功,
但是建群沒有超過40人 會(huì)有個(gè)別好友會(huì)受到打擾消息,可能是微信哪里的bug,具體原因未知。
說明和app預(yù)覽
此軟件通過無障礙輔助進(jìn)行模擬點(diǎn)擊,無任何外掛木馬,無封號(hào)風(fēng)險(xiǎn)
使用方法
Android 手機(jī)一部,登錄微信賬號(hào)
安裝輔助軟件apk下載地址請(qǐng)點(diǎn)擊這里(https://raw.githubusercontent.com/wlj32011/InspectWechatFriend/master/app-release.apk)
打開輔助軟件-點(diǎn)擊打開輔助功能按鈕,跳轉(zhuǎn)到無障礙輔助設(shè)置把輔助開關(guān)打開。
點(diǎn)擊開始檢查按鈕,開始一系列的模擬點(diǎn)擊,檢查完成后會(huì)跳轉(zhuǎn)到一個(gè)列表會(huì)把被刪好友列表展示出來。
2
實(shí)現(xiàn)步驟
? ?新建Android Studio 工程,新建一個(gè)Services類集成AccessibilityService,實(shí)現(xiàn)對(duì)應(yīng)方法,詳細(xì)介紹見代碼注釋
在manifests.xml文件中注冊(cè)此服務(wù):
新建res/xml/inspect_wechat_friend.xml文件
實(shí)現(xiàn)對(duì)某個(gè)控件的點(diǎn)擊
通過getRootInActiveWindow方法獲取當(dāng)前窗口信息,通過findAccessibilityNodeInfosByText方法找到當(dāng)前對(duì)應(yīng)控件進(jìn)行模擬點(diǎn)擊
在當(dāng)前頁面查找文字內(nèi)容并點(diǎn)擊
檢查viewId進(jìn)行點(diǎn)擊
在當(dāng)前頁面查找對(duì)話框文字內(nèi)容并點(diǎn)擊
監(jiān)聽窗口事件
獲取當(dāng)前窗口的classname 通過classname進(jìn)行判斷當(dāng)前手機(jī)處于某個(gè)界面
下面代碼邏輯:
如果當(dāng)前為微信主頁面,則點(diǎn)擊+號(hào)然后點(diǎn)擊發(fā)起群聊
如果當(dāng)前頁面為創(chuàng)建群聊選擇聯(lián)系人界面,則開啟一個(gè)while循環(huán)模擬滾動(dòng)時(shí)間以及點(diǎn)擊選擇框,當(dāng)選擇用戶到39人時(shí),則模擬點(diǎn)擊確定按鈕發(fā)起群聊。
發(fā)起群聊后,微信會(huì)返回哪些用戶不是你的好友,這個(gè)時(shí)候,取到當(dāng)前控件的字符串并截取用戶列表保存到本地。
獲取到不是好友的用戶后,點(diǎn)擊右上角進(jìn)入群聊詳情,點(diǎn)擊刪除并退出
退出后又回到微信主頁面,依次執(zhí)行1 2 3 4步驟,直到滾動(dòng)到聯(lián)系人最底部為止。
當(dāng)所有用戶執(zhí)行完成后,則啟動(dòng)檢查結(jié)果界面,列出所有被刪好友。
下面為對(duì)應(yīng)邏輯代碼:
監(jiān)聽手機(jī)當(dāng)前窗口狀態(tài)改變 比如 Activity 跳轉(zhuǎn),內(nèi)容變化,按鈕點(diǎn)擊等事件
模擬創(chuàng)建群組步驟
退出群組步驟
模擬獲取被刪好友列表步驟
ui automator viewer的使用
? ?uiautomatorviewer可以檢查當(dāng)前手機(jī)的布局結(jié)構(gòu),如果想更精確的找到控件位置,uiautomatorviewer必不可少!
使用方法:
搭建Android開發(fā)環(huán)境,并設(shè)置環(huán)境變量,這里就不說了。
在Android Studio 中打開 terminal 窗口,或者在終端直接執(zhí)行命令
整體效果圖:
項(xiàng)目源碼github地址:
https://github.com/wlj32011/InspectWechatFriend
總結(jié)
以上是生活随笔為你收集整理的Android Accessibility实践 程序检查微信被删好友的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IGMP-Snooping相关学习
- 下一篇: Android之解压缩ramdisk文件