移动测试基础 探究下 Android4.2 中新增的 settings 命令

xuxu · February 06, 2015 · Last by securitytest replied at September 26, 2017 · 3267 hits

Android4.2 的源码 android-17\com\android\commands 目录下较之前的版本多了一个 settings 命令,查看其中的 SettingsCmd.java 文件,末尾有命令的帮助信息:

private static void printUsage() {
        System.err.println("usage:  settings [--user NUM] get namespace key");
        System.err.println("        settings [--user NUM] put namespace key value");
        System.err.println("\n'namespace' is one of {system, secure, global}, case-insensitive");
        System.err.println("If '--user NUM' is not given, the operations are performed on the owner user.");
    }

选项中的 key 为什么值,很难从帮助信息中看出,从代码中查看该 key 值是在 android.provider.Settings 中定义了。
http://developer.android.com/reference/android/provider/Settings.System.html

该命令可以很方便的更改系统设置中的参数(如修改系统默认输入法),给出几个使用该命令的例子:

#获取系统默认输入法
#默认搜狗输入法
C:\Users\Administrator>adb shell settings get secure default_input_method
com.sohu.inputmethod.sogouoem/.SogouIME

#默认为Appium使用中文输入时安装的输入法
C:\Users\Administrator>adb shell settings get secure default_input_method
io.appium.android.ime/.UnicodeIME

#put命令更改默认输入法(将io.appium.android.ime/.UnicodeIME改为com.sohu.inputmethod.sogouoem/.SogouIME)
C:\Users\Administrator>adb shell settings put secure default_input_method com.sohu.inputmethod.sogouoem/.SogouIME
#获取亮度是否为自动获取
C:\Users\Administrator>adb shell settings get system screen_brightness_mode
1
#获取当前亮度值
C:\Users\Administrator>adb shell settings get system screen_brightness
30
#更改亮度值(亮度值在0—255之间)
C:\Users\Administrator>adb shell settings put system screen_brightness 150
#获取屏幕休眠时间
C:\Users\Administrator>adb shell settings get system screen_off_timeout
15000
#更改休眠时间,10分钟
C:\Users\Administrator>adb shell settings put system screen_off_timeout 600000
#获取日期时间选项中通过网络获取时间的状态,1为允许、0为不允许
C:\Users\Administrator>adb shell settings get global auto_time
1
#更改该状态,从1改为0
C:\Users\Administrator>adb shell settings put global auto_time 0

以及获取、修改 wifi 状态(wifi_on)、飞行模式(airlpane_mode_on)等,这里也是 appium 中 getNetworkConnection 获得设备网络状态的方法。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 9 条回复 时间 点赞

标准系统才有用,自己裁剪过的就可能不同了。

xuxu #2 · February 06, 2015 Author

@lihuazhang 嗯,需要用到的时候,要自己尝试才知道能不能使用,还有其中的 system、global、secure 这个个 namespace 要用正确才行。

关闭和打开 WIFI 怎么用?

xuxu #4 · June 15, 2015 Author

@99989680 adb shell settings put global wifi_on 1,不是任何机型都支持

#3 楼 @99989680
关闭 wifi

adb shell svc wifi disable

打开 wifi

adb shell svc wifi enable

当需要打开或者关闭数据业务的时,把 wifi 修改为 data 就 OK 了

强制静音 怎么用?

有木有给 wifi 设置代理的命令

xuxu [Topic was deleted] 中提及了此贴 07 Jul 15:46
xuxu Android 常用 adb 命令总结 中提及了此贴 04 Dec 14:12

关闭开发者选项中的锁屏,怎么使用?

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up