保持屏幕活动和应用程序在锁定屏幕前

时间:2018-05-30 08:56:25

标签: android

当我启动谷歌地图导航时,它会使屏幕保持活动状态,如果我将其关闭并再次打开电源按钮,则地图应用程序位于锁定屏幕上方,只有当我最小化应用程序时,我才能解锁屏幕。 所以我可以关闭和打开屏幕,仍然可以使用应用程序,而无需解锁屏幕

我如何为自己的应用程序实现这一目标?

我知道我可以用

打开屏幕
private <T> T $(@IdRes int id) {
    return (T) findViewById(id);
}

但这并不妨碍我在关闭再打开屏幕后解锁屏幕。

3 个答案:

答案 0 :(得分:2)

您可以使用屏幕固定选项之类的内容。该应用程序将在锁定屏幕上,但它不是以编程方式完成的,但它可以达到您想要的效果。

在屏幕上固定应用的说明:

  • 转到设置→安全性→屏幕固定
  • 启用屏幕固定以及选项&#34;在取消固定前请求解锁图案&#34;
  • 现在打开所需的应用,然后切换到概述菜单
  • 点按应用上的图钉图标。

但是,如果您想使用代码执行此操作,请参阅属性:android:showOnLockScreen="true"和链接:

答案 1 :(得分:2)

你应该搬家  在getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)下面setContentView(),并将android:keepScreenOn="true"放入主要布局的根视图中。

答案 2 :(得分:0)

好的,感谢Arnauld Alex给出的答案,我明白了。 只需添加

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
setContentView(...)

之前