[英]Changing Doze mode parameters programmatically
关于更改休眠模式转换参数的问题我有一个非 root 用户 Android 12 设备有许多参数可用于更改休眠模式下的转换时间:
如果您使用 ADB 通过 PC 更改这些参数,则会设置这些参数。 例如:
adb shell device_config put device_idle inactive_to 2592000000
问题是重新启动后,设置被重置。 试图直接在程序中更改它们
// val command = arrayOf("/system/bin/device_config", "put", "device_idle", "motion_inactive_to", "2592000000")
val command = arrayOf("/system/bin/settings", "put", "global", "device_idle_constants", "light_after_inactive_to", "2592000000")
Log.d("ADB", "Start ${command.joinToString(separator = " ")}")
val process = Runtime.getRuntime().exec(command)
val bufReader = BufferedReader(InputStreamReader(process.errorStream))
val log = StringBuilder()
var line: String?
line = bufReader.readLine()
while (line != null) {
log.append(line + "\n")
line = bufReader.readLine()
}
Log.d("ADB", "Command: $log")
但是第一个命令得到了回答:
“cmd:找不到服务:“device_config””
第二个命令给出了一个错误:
权限拒绝:来自 pid=28435 的 getCurrentUser(),uid=10245 需要 android.permission.INTERACT_ACROSS_USERS
查了下INTERACT_ACROSS_USERS权限的资料,了解到是做应用系统需要的。 为此,我需要对设备进行 root 操作。
有没有其他方法可以更改打瞌睡模式的参数或完全禁用它? 令人困惑的是,您可以在非根设备上使用 adb 运行命令,但不能直接在程序中运行。
有没有其他方法可以更改打瞌睡模式的参数或完全禁用它?
不会。如果有的话,添加 Doze 模式将毫无意义,因为每个开发人员都会选择退出它。
令人困惑的是,您可以在非根设备上使用 adb 运行命令,但不能直接在程序中运行。
具有不同权限的不同用户/进程至少 30 年来一直是操作系统中的一个普遍概念。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.