Nexus 5无法使用ADB进入待机模式

9

我有一部 Nexus 5 手机,使用 Windows 系统的 ADB 命令无法让它进入 Doze/IDLE 模式。该手机已通过 USB 线缆连接并开启了 ADB 功能,其他 ADB 命令均能正常使用,但屏幕却保持关闭状态。

C:\>adb shell dumpsys deviceidle force-idle
Unable to go idle; stopped at ACTIVE

C:\>adb shell dumpsys deviceidle enable

C:\>adb shell dumpsys battery unplug

C:\>adb shell dumpsys deviceidle step
Stepped to: ACTIVE

C:\>adb shell dumpsys deviceidle step
Stepped to: ACTIVE

C:\>adb shell dumpsys deviceidle step
Stepped to: ACTIVE

C:\>adb shell dumpsys deviceidle enable

C:\>adb shell dumpsys deviceidle force-idle
Unable to go idle; stopped at ACTIVE

我在使用 Nexus 5 模拟器时,始终处于相同的状态,即“活动状态(ACTIVE)”。 - pallavi
三星Galaxy S7也有同样的问题。 - Valeriy Katkov
2个回答

11

首先,您需要运行此命令:

> adb shell dumpsys battery unplug

接下来关掉屏幕(这一步非常重要),否则设备会保持ACTIVE状态。

之后执行此命令,直到设备状态更改为IDLE

> adb shell dumpsys deviceidle step
Stepped to: IDLE_PENDING
> adb shell dumpsys deviceidle step
Stepped to: SENSING
> adb shell dumpsys deviceidle step
Stepped to: LOCATING
> adb shell dumpsys deviceidle step
Stepped to: IDLE

8

可能存在一种情况,阻止手机进入IDLE状态,比如预定闹钟。请确保没有设置任何闹钟应用,在你试图强制将手机置于IDLE状态的1小时内响起。


我遇到了S6 Neo和S5 Active不同的情况。在S6 Neo上,设备被正确地防止进入IDLE模式,但是S5会进入IDLE并且无法唤醒。有任何已知的解决方法吗? - M3-n50
@M3-n50,你说S5无法被唤醒时能否更具体一些?你是如何尝试唤醒它的?它运行的Android版本是什么? - Oggy
目前正在运行5.0版本。目前情况是S6(6.0)目前无法进入IDLE模式(这很好)。使用相同方法的5.0会进入IDLE模式,并且会有5分钟的延迟。目前在S5(5.0)上工作的是使用setRepeating,这很奇怪,因为根据我所读的,我理解这应该在4.0及以上版本中不起作用(至少不是太频繁的情况下)。 - M3-n50
Doze模式是在Android 6中引入的(Doze模式)。在之前的版本中,没有像setAndAllowWhileIdle()这样的方法。在将您的意图添加到闹钟管理器之前,您应该检查Android的版本。换句话说,如果Build.VERSION.SDK_INT低于23,则应使用setExact和RTC_WAKEUP添加您的意图。 - Oggy
@Orilux 对我有用 - Imran Khan Saifi
显示剩余2条评论

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