在活动中保持屏幕开启 - 不适用于FLAG_KEEP_SCREEN_ON

Ted*_*Ted 8 android screen android-activity usb-debugging

所以,很长一段时间我都认为我知道如何阻止屏幕进入睡眠模式,我只是在我的Activity中使用了这段代码:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)

但是,我意识到这只适用于我的手机处于"开发人员模式"时,即启用/检查USB调试(设置 - >开发人员选项 - > USB调试)时.然后,上述代码确实阻止屏幕/设备进入睡眠状态.

当没有检查那个调试时,我的屏幕就像没有明天一样进入睡眠状态.我在我的设备上运行Android 4.04,并且

 android:minSdkVersion="12"
 android:targetSdkVersion="16"
Run Code Online (Sandbox Code Playgroud)

有谁听说过这个问题?

编辑

我已经使用Commonswares建议进行了测试,并将setKeepScreenOn()添加到代码中,所以它看起来像这样:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
View root = findViewById(android.R.id.content); 
if (root != null)
    root.setKeepScreenOn(true);
Run Code Online (Sandbox Code Playgroud)

我也检查了这个代码实际执行,它是.但它并没有改变一件事......

小智 2

我面临着同样的问题,我正在为我的项目使用一个活动,而所有其他屏幕都是碎片,然后我使用了android:keepScreenOn="true"主要活动。

请尝试使用此功能,如果您没有得到您想要的结果,请告诉我。

谢谢。