android实用地更改设备屏幕分辨率

时间:2019-11-25 10:08:55

标签: java android kotlin adb

我想在我的android应用程序中出于特殊目的更改设备分辨率和密度。 我发现使用adb可以执行此命令。 像这样

adb shell wm size 1270x720

and then

adb shell wm density 200

我还听说可以在应用程序内使用adb命令,但似乎不起作用。

cmd1 = "wm size 1270x720"
cmd2 = "wm density 200"
Runtime.getRuntime().exec(cmd 1/2).waitFor()

1 个答案:

答案 0 :(得分:0)

经过数小时的反复试验,我终于明白了。我使用错误errorStream而不是inputStream,因为命令遇到错误,其输入为空。

    val process = Runtime.getRuntime().exec(command)
    val bufferedReader = BufferedReader(
        InputStreamReader(process.errorStream)
    )

    // Grab the results
    val log = StringBuilder()
    var line: String?
    line = bufferedReader.readLine()
    while (line != null) {
        log.append(line + "\n")
        line = bufferedReader.readLine()
    }
    Log.i("ADB_COMMAND", "command : $command $log")

此修复程序显而易见。我缺少WRITE_SECURE_SETTINGS权限。