作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用以下代码确定屏幕是否打开:
private void isScreenOn() {
if (Build.VERSION.SDK_INT >= 20) {
if (mPowerManager.isInteractive()) {
//Do stuff
}
} else {
if (mPowerManager.isScreenOn()) {
//Do stuff
}
}
}
我已经收到来自现场的报告,这正在被记录:
com.aws.android I/dalvikvm: Could not find method android.os.PowerManager.isInteractive, referenced from method ...
谁能帮我理解这是怎么发生的? isScreenOn() 方法应该对 API 19 有效,而 isInteractive() 应该对 API 20 及更高版本有效。我在这里做错了什么吗?
最佳答案
我发现了问题。我的目标是 Android SDK 版本 22。如果您在运行 <版本 20 的设备上调用 PowerManager.isScreenOn()
,那么 isScreenOn
调用实际上只是包装了 isInteractive
调用。
这在文档中有详细说明,但我阅读时没有注册。
关于Android PowerManager isInteractive() vs isScreenOn() 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34046862/
我使用此代码在 Android 4.4.2 上保持屏幕打开。 @Override protected void onCreate(Bundle savedInstanceState) {
我正在尝试使用以下代码确定屏幕是否打开: private void isScreenOn() { if (Build.VERSION.SDK_INT >= 20) {
我是一名优秀的程序员,十分优秀!