试图让 Android 设备进入睡眠状态,但 PowerManager 不包含“goToSleep(long) 方法

Attempting to put Android device to sleep, but the PowerManager does not contain a "goToSleep(long) method

我正在尝试让设备进入睡眠状态,我发现 references 关于使用 PowerManager class 的 goToSleep(long) 方法的全部内容,但我没有在文档中看到它当我尝试在我的代码中使用它时它不起作用。

Android's documentation 不包含我能看到的 goToSleep 方法。

我的代码:

 private void sleepDevice() {
    try {
        PowerManager powerMgr = (PowerManager) getSystemService(Context.POWER_SERVICE);
        long time = 1000;
        powerMgr.goToSleep(time);
    } catch (Exception ex) {
        updateStatus("Error attempting to reboot device.");
        updateStatus(ex.getLocalizedMessage());
    }
}

Android Studio 不允许代码编译时出现消息“无法解析方法 'goToSleep(long)。

我什至不认为这种方法已被弃用。此外,我不需要担心安全权限,该调用旨在 运行 在有根设备上或在非根设备上优雅地失败。

您可以使用 DeviceAdministrator ,但您需要用户授予您这些权限。

PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = manager
    .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "YOUR_OWN_TAG");
wl.acquire();
wl.release();

尝试这种方式并提供一些反馈。