Android: 在Android M中完全禁用设备空闲模式(“Doze”)?

10
在一个已root的Android M设备上,我想要始终完全禁用设备空闲模式(“Doze”)。是的,我知道这会影响到我的电池寿命,但我不在意。
我知道可以调用以下命令:
dumpsys deviceidle disable

然而,我并没有找到有关该子命令的详细文档。它是否确实可以完全和永久地在我的设备上禁用“Doze”(或者至少在下一次启动之前),还是执行其他相关功能?

如果“dumpsys deviceidle disable”命令不是永久禁用“Doze”的方法,那么是否有其他方法,例如通过Android Java API?实际上,如果存在Java-API解决方案,则最理想。


相关的内容:http://stackoverflow.com/questions/39873417/what-is-system-api-for-stoping-doze-for-an-app-on-android-marshmellow/39913940#39913940 - Tim
使用 adb shell dumpsys deviceidle -h 查看文档。 - Tim
还要查看此链接 https://newcircle.com/s/post/1739/2015/06/12/diving-into-android-m-doze - Tim
2个回答

13

这个命令可以在没有root权限的情况下禁用Doze模式,但是每次重启后都需要再次执行该命令。一些人还使用另一个命令来启用Doze白名单,因为似乎Marshmallow默认情况下已将其禁用,并且不起作用。

adb shell dumpsys deviceidle disable
adb shell dumpsys deviceidle whitelist

如果你拥有root权限,你可以下载一个应用程序,在系统启动时每次执行这个脚本,从而永久禁用Doze模式。


1
dumpsys deviceidle whitelist 只会显示白名单信息,不会改变模式或其他任何内容。 - mbirth
嗯...这个命令只适用于Oneplus和Nexus手机吗?我个人只测试过第一个,但第二行在安卓论坛的几个帖子中提到,所以我把它包含在答案中了。 - Carlos Hoyos
这在我的Galaxy S22上运行Android 13仍然是一个有效的修复方法。经过几周的测试,多次重新启动后问题仍然存在。我只需要第一个命令。 - Paul

7

如果有人想知道如何更改白名单中的内容:

adb shell dumpsys deviceidle whitelist +com.app.package

我认为“-com.app.package”将会移除一个应用程序

目前在安卓10系统的Huawei P Smart 2019手机上,该更改将在重新启动后保留。

另外,可访问https://dontkillmyapp.com/以获取更多关于应用程序被强制关闭的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接