Android PowerManager isInteractive() против isScreenOn() ошибка?

Я пытаюсь определить, включен ли экран, используя следующий код:

    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 и выше. Я что-то здесь не так делаю?

1 ответ

Я понял проблему. Я нацеливаюсь на Android SDK версии 22. Если вы звоните PowerManager.isScreenOn() на устройстве под управлением <версия 20, то isScreenOn звонок действительно просто оборачивает isInteractive вызов.

Это было прописано в документации, но не было зарегистрировано, когда я ее прочитал.

Другие вопросы по тегам