Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android KeyguardManager.IsKeyguardSecurity导致StrictMode策略冲突_Android_Kotlin_Android Strictmode - Fatal编程技术网

Android KeyguardManager.IsKeyguardSecurity导致StrictMode策略冲突

Android KeyguardManager.IsKeyguardSecurity导致StrictMode策略冲突,android,kotlin,android-strictmode,Android,Kotlin,Android Strictmode,我想检查设备屏幕锁是否启用,我正在使用Android SDK提供的标准API,如下所示。但是我收到了 D/StrictMode: StrictMode policy violation; ~duration=127 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=4259847 violation=2 at android.os.StrictMode$AndroidBlockGuardPolicy.onR

我想检查设备屏幕锁是否启用,我正在使用Android SDK提供的标准API,如下所示。但是我收到了

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()
        )
    }
由于这是Android SDK提供的标准API,为什么会发生这种情况?无论如何,这只是Strictmode的情况,如果禁用strict模式,LogCat上将不会出现任何警告


我做错什么了吗?

“为什么会这样?”——谷歌很少用
StrictMode
测试自己的代码,这是很不幸的。也就是说,您可以将键盘护卫的检查更多地添加到一个后台线程中。@commonware这是不幸的。我把代码移到了一个背景线程中,看起来还不错。我试图通过谷歌实现新的生物识别AndroidX库,我发现API中也存在严格的模式冲突。非常感谢您的快速回复。“为什么会发生这种情况?”——谷歌很少使用
StrictMode
测试自己的代码,这是很不幸的。也就是说,您可以将键盘护卫的检查更多地添加到一个后台线程中。@commonware这是不幸的。我把代码移到了一个背景线程中,看起来还不错。我试图通过谷歌实现新的生物识别AndroidX库,我发现API中也存在严格的模式冲突。非常感谢您的快速回复。