KeyguardManager.isKeyguardSecure вызывает нарушение политики StrictMode - PullRequest
1 голос
/ 07 ноября 2019

Я хочу проверить, включена ли блокировка экрана устройства, и я использую стандартный API, предоставляемый Android SDK, как показано ниже. Но я получаю

D/StrictMode: StrictMode policy violation; ~duration=127 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=4259847 violation=2
        at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1449)

Вот код, который я пробовал.

val km = requireContext().getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager?
    return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        //Returns whether the device is secured with a PIN, pattern or password.
        km?.isDeviceSecure ?: false
    } else {

        //Return whether the keyguard is secured by a PIN, pattern or password or a SIM card is currently locked.
        km?.isKeyguardSecure ?: false
    }

Я установил строгий режим, как показано ниже для моего класса приложений

 private fun enableStrictMode() {
        StrictMode.setThreadPolicy(
            Builder()
                .detectDiskReads()
                .detectDiskWrites()
                .detectNetwork()
                .penaltyLog()
                .build()
        )
    }

Так как это стандартный API, предоставляемый Android SDK, почему это происходит? В любом случае, это как раз случай Strictmode, и если я отключу строгий режим, на LogCat не будет никаких предупреждений.

Я что-то не так делаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...