python3 控制安卓手机的飞行模式遇到的问题汇总

一、首先调通电脑对手机能落实 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命令控制手机的多种行为
上一篇:Python-函数式编程-map reduce filter lambda 三元表达式 闭包


下一篇:Python函数式编程,map/reduce,filter和sorted