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