【发布时间】:2015-02-11 16:23:15
【问题描述】:
我试图让设备进入睡眠状态,我发现references 到处都是关于使用 PowerManager 类的 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)。
我什至不认为这种方法已被弃用。另外,我不需要担心安全权限,该调用旨在在有根设备上运行或在非根设备上优雅地失败。
【问题讨论】:
-
我的问题是,我可以使用另一种方法/技术让 Android 设备进入睡眠状态吗?这个方法是另一个类吗? goToSleep 方法去哪儿了?
-
goToSleep()已从 API 级别 21 (Lollipop) 中的PowerManager中删除,为什么我不知道。 developer.android.com/sdk/api_diff/preview-21/changes/… -
old Android docs (thanks to Web Archive) 还声明您需要 DEVICE_POWER 权限,该权限不适用于无根设备上的 3rd 方应用程序。
-
感谢@PhilippReichart,这非常令人困惑。在留言板中看到参考资料,但在文档或 API 中没有。
标签: java android powermanager sleep-mode