使用安卓手機搭配 ADB 發送簡訊
操作程序:
- 安裝 ADB 工具
- 手機設定啟用開發人員選項
- 手機啟用 USB 偵錯模式
- 使用 USB 線,將手機連接電腦,並在手機上允許電腦進行偵錯
- 開啟終端機視窗
- 執行發送命令程式
ADB shell am start -a android.intent.action.SENDTO -d sms:<TARGET_PHONE_NUMBER> --es sms_body "<SMS_CONTENT>" --ez exit_on_sent true
注意:
- 網路上流傳的 keyevent 其實就是在移動一個看不見的鼠標,將鼠標移動到簡訊發送鈕上,再送出 keyevent 66 (Enter)
- 這會因為手機品牌型號不同,簡訊程式發送鈕的位置佈局不同,甚至同一個目標門號有歷史紀錄,都導致 keyevent 執行的代碼與次數不同
解決方法:
- 手機操作到發送簡訊的畫面
- 終端機執行 ADB Dump UI 結構的指令
adb shell uiautomator dump
- 將 UI 結構的 XML 檔案拉回電腦上
adb pull /sdcard/window_dump.xml
- 從 XML 檔案中,找到發送鈕的資訊
- 改用 adb shell input tap 座標方式發送
以我的手機為例:
- Dump UI XML
adb shell uiautomator dump
2. Pull File to Windows,檔案會存在當前目錄下
adb pull /sdcard/window_dump.xml
3. 打開 XML 檔案,找到發送鈕的 resource-id,其中就包含左上右下的座標
4. 計算一下大約要 tap 的座標
915 + (1047 - 915) / 2 = 981
2116 + (2180 - 2116) / 2 = 2148
- 執行點擊座標的程式
adb shell input tap 981 2148
備註:
- XML 檔案包含簡訊應用程式的名稱,我的手機應用程式名稱是
com.google.android.apps.messaging
0 意見:
張貼留言