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

我试图让一个设备进入睡眠状态,我已经找到了关于使用PowerManager类的goToSleep(long)方法的参考文献,但我没有在文档中看到它,当我尝试在我的代码中使用它时它不起作用。

Android的文档中没有我能看到的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)。

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

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

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

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