一、首先調通電腦對手機能落實 adb shell命令
驗證通過標准:控制wifi開關的命令,能讓wifi功能開啟和關閉 (adb shell svc wifi enable 和 adb shell svc wifi disable)
1、電腦沒有ADB命令行,華為手機的管理程序里面也沒有了adb,需要在網上下載一個adb kits套件 http://adbshell.com/downloads
adb程序放置的目錄,要在系統環境變量里面添加,不然windows的cmd下 會無法找到adb命令
2、手機usb連到電腦,adb shell命令運行失敗,提示 device not found , 原因是華為手機沒有開啟開發者模式,並允許usb調試
在手機》設置》系統》關於手機》版本號 條目上,連續單擊10次,提示你已經開啟開發者模式
退到上一級目錄: 設置》系統》開發人員選項 中將usb調試打開,授權電腦可以控制這部手機,允許充電模式下 ADB調試
這時候才能運行adb shell 。每次調試命令,遇到錯誤提示,建議在任務管理器里面 找到 adb 程序,kill掉;保證每次調試adb shell 都是干凈的系統環境
異常1:如果電腦-》設備管理里面 ADB interface是異常狀態,還需要安裝華為手機助手 來修復此驅動 https://consumer.huawei.com/cn/support/hisuite/ 。adb shell命令運行時,手機會彈出授權此電腦的提示,確認即可。
3、電腦調試通過adb shell命令,可以控制手機wifi的開啟和關閉,開始調測python對cmd命令支持 (使用PyCharm作為python的IDE環境)
import os # air plane run cmd = 'adb shell settings put global airplane_mode_on 1' os.popen(cmd) cmd1 = 'adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false' os.popen(cmd) # air plane off cmd = 'adb shell settings put global airplane_mode_on 0' os.popen(cmd) cmd1 = 'adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false' os.popen(cmd)
運行后在PyCharm發現控制台出現亂碼��� ,無法知道出什么錯誤提示
控制台使用的應該是GBK編碼,在PyCharm的,File》Setting》Editor》File Encodings中,設置Global Encoding 也為GBK(以前是UTF-8)就能看到錯誤提示為:【adb 不是內部或外部命令】
注:文件編碼全部設置為UTF-8,還是亂碼
PyCharm不識別windows 的CMD下的path,只認識自己的path,所以臨時方案,我把adb相關程序放在了 D:\Program Files\Python\Python36 ,這樣Python就能找到這個目錄下的可執行程序adb了
最后觀察到在,Python3能通過adb shell命令控制手機的多種行為