工具:adb、python開發環境、安卓手機、macOS
首先安裝python環境,安裝terminal adb,
其中adb安裝程序:
brew install android-platform-tools
檢查adb的狀態
adb devices
如果安裝成功,檢查設備的指令會列出當前設備,
因為安卓手機需要連接電腦且開啟開發者模式,才會出現在設備串列,所以記得找到對應設備的廠商的開發這模式開啟的方法,自行谷歌,
如果adb devices -l 列出的仍然空白,
終端輸入
system_profiler SPUSBDataType
可以檢查當前連接設備,搜索android,可以看到自己的手機
USB 3.1 Bus:
Host Controller Driver: AppleIntelCNLUSBXHCI
PCI Device ID: 0xa36d
PCI Revision ID: 0x0010
PCI Vendor ID: 0x8086
SAMSUNG_Android:
Product ID: 0x6860
Vendor ID: 0x04e8 (Samsung Electronics Co., Ltd.)
Version: 5.04
Serial Number: R5CR11B1XDN
Speed: Up to 480 Mb/s
Manufacturer: SAMSUNG
Location ID: 0x14300000 / 8
Current Available (mA): 500
Current Required (mA): 0
Extra Operating Current (mA): 0
記錄下Vendor ID,到/Users/[user]/.android下,應該有一個adb_usb.ini檔案,如果沒有就創建,然后將Vender ID加入到檔案中,(直接添加保存即可)
重啟adb服務:
adb kill-server
adb start-server
重新輸入adb devices來檢查,看到設備在其中
eugene@Eugenes-MBP ~ % adb devices -l
List of devices attached
R5CR11B1XDN device usb:338690048X product:p3qzcx model:SM_G9980 device:p3q transport_id:2
這時候使用終端指令可以直接發送短信
adb shell am start -a android.intent.action.SENDTO -d sms:{} --es sms_body {}
其中{}用手機號和短信內容替換
即可調起手機短信功能停留在發送界面,
至此基本設定準備妥當,
使用到的Python庫:
import os
import pandas as pd
import numpy as np
import time
遍歷excel的方法:
df = pd.read_excel('file.xlsx')
for index,row in df.iterrows():
//todo
呼叫adb shell方法:
//拼接發送指令
os.popen("adb shell am start -a android.intent.action.SENDTO -d sms:{} --es sms_body {}".format(mobile, sms_content))
//給予機器緩沖時間
time.sleep(2)
//模擬指令
os.popen("adb shell input keyevent 22")
最后實操需要大家除錯一下,因為不同手機和設備在連接、設定、系結、指令呼叫都有差異,
TIPS:因為有些手機品牌的短信界面有不同的按鍵,如我三星輸入欄右側是表情按鈕,只需要呼叫兩次右導航鍵,再回車發送即可,
腳本邏輯可以理解成用戶操作的一個流程,
附帶我的腳本呼叫:
adb shell am start -a android.intent.action.SENDTO -d sms:187xxxxxxxx --es sms_body "短信內容"
adb shell input keyevent 22
adb shell input keyevent 22
adb shell input keyevent 66
在整體腳本中可以呼叫home指令來穿插哦,
附:
部分adb shell指令
https://www.itread01.com/content/1548785710.html
部分adb shell指令
https://www.shuzhiduo.com/A/E35pgx3AJv/
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/290305.html
標籤:其他
上一篇:Android藝術開發探索之Activity的生命周期
下一篇:Android熱修復基礎篇(一)
