如何在Android模拟器上模拟睡眠模式

44

我的安卓应用用户在手机进入睡眠/省电模式时报告错误。

我想在安卓虚拟设备上测试这个问题。是否可以在AVD上模拟手机进入睡眠/省电模式?

提前感谢。


我看了一下那个问题,但是答案似乎只涉及到锁定手机,我想把它切换成睡眠模式。 - Arnaud
1
按下 <kbd>F7</kbd> 键。 https://dev59.com/GG855IYBdhLWcg3wUSkW#4411432 - Eng. Samer T
6个回答

57

在模拟器上尝试以下操作:

  1. 进入 设置
  2. 进入 开发者选项
  3. 取消选中 保持唤醒状态 (从顶部算起的第三个选项)

如果未更改,默认情况下,模拟器将在1分钟后进入睡眠状态。

按下电源按钮enter image description here来唤醒模拟器。

开发者选项默认情况下未启用。要启用它,请执行以下操作:

  1. 进入 设置
  2. 点击 关于模拟设备
  3. 点击 版本号 7次,您会收到通知,提示已启用 开发者选项
  4. 返回,您将看到 开发者选项

8
如果这个选项没有出现,您需要通过以下步骤开启开发者模式:
  1. 进入设置 -> 系统 -> 关于模拟设备
  2. 点击7次构建号码
然后您就可以在开发者选项中找到它。
- Kurt Huwig
@KurtHuwig,您是指使用Android“设置小程序”还是在PC上模拟的手机旁边的开发者侧边栏中的...?我找不到如何在模拟器中打开开发者选项。 - Pete Alvin
1
@PeteAlvin - 在模拟手机内部的Android设置应用程序。打开它的说明在答案的后半部分给出。(这与任何真实的Android手机相同。) - ToolmakerSteve
1
在较新的手机上,一旦打开开发者选项,它们可以在设置/系统/高级/开发者选项中找到。然而,请参见其他答案:您不需要执行此答案中显示的任何操作;只需单击模拟电源按钮即可关闭屏幕(就像在真实手机上一样)! - ToolmakerSteve
2
这仅用于屏幕睡眠还是实际深度睡眠(待机模式)?我发现仅靠屏幕睡眠并不能触发大多数与睡眠相关的错误,因为只有正确实现时,深度睡眠才能使您的应用程序进入休眠甚至关闭您的应用程序并停止后台进程。 - JustAMartin

39

在模拟器上,前往“设置/安全/屏幕锁定”将锁定方式从“无”更改为“滑动” 在此输入图片描述

然后,在右侧控制栏中点击“电源”按钮关闭屏幕,再次按下按钮打开屏幕。现在锁屏界面将会显示。 在此输入图片描述


这是什么鬼,这只是让屏幕休眠了。我的模拟器仍在消耗大量的CPU,全部四个核心都在跑。而且你几乎不需要滑动选项。只需点击电源按钮即可。 - mjs

26

侧边栏上的电源按钮可以做到这一点。

我的Mac热键是⌘ P

注意:您需要使用滑动设置锁屏,而不是无操作


您可以使用 ⌘ P 再次解锁它。 - zoecarver
仍然消耗大量的CPU。看起来是同样的数量。只是变成了黑色。 - mjs

6

使用命令行将设备置于睡眠状态,请运行以下命令:

adb shell input keyevent 223

使用命令行唤醒设备,请运行以下命令:

adb shell input keyevent 224

如需了解可通过ADB发送的键事件的更多信息,请查看KeyEvent中的KEYCODE_...常量,例如:

/** Key code constant: Sleep key.
 * Puts the device to sleep.  Behaves somewhat like {@link #KEYCODE_POWER} but it
 * has no effect if the device is already asleep. */
public static final int KEYCODE_SLEEP           = 223;

/** Key code constant: Wakeup key.
 * Wakes up the device.  Behaves somewhat like {@link #KEYCODE_POWER} but it
 * has no effect if the device is already awake. */
public static final int KEYCODE_WAKEUP          = 224;

3
一些mac上的键盘快捷键可能无法正常使用,例如fn + F7。因此,您可以使用以下命令代替:adb shell input keyevent 26。这将发送POWER KEY事件并关闭屏幕。请注意:它不会显示屏幕已关闭,但图像将保持不变。您无法与其交互。只要再次执行adb shell input keyevent 26,就会看到锁屏界面,表明设备之前已关闭。请注意保留HTML标签。

1
通过按下F7键,您可以在模拟器中模拟睡眠模式。

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