当我启动谷歌地图导航时,它会保持屏幕活跃,如果我使用电源按钮将其关闭并再次打开,地图应用程序位于锁定屏幕上方,只有当我最小化应用程序时,我必须解锁屏幕。 所以我可以关闭和打开屏幕,并且仍然可以使用该应用程序而无需解锁屏幕
如何为我自己的应用程序实现这一点?
我知道我不能保持屏幕打开
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
但这并不能阻止我在关闭屏幕并再次打开屏幕后必须解锁屏幕。
您可以使用类似于屏幕固定选项的内容。应用程序将在锁定屏幕上,但它不是以编程方式完成的,但它会执行您想要的效果。
在屏幕上固定应用的说明:
- 转到设置→安全→屏幕固定
- 启用屏幕固定以及"取消固定前要求解锁图案"选项
- 现在打开所需的应用程序,然后切换到概述菜单
- 点击应用程序上的图钉图标。
但是,如果要使用代码执行此操作,请参阅属性:android:showOnLockScreen="true"
和链接:
- 默认锁定屏幕上的安卓活动
- 在锁定屏幕上从服务启动活动会打开屏幕,但不显示活动本身
- 锁定时显示旗帜
你应该移动getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
setContentView()
下方,android:keepScreenOn="true"
放入主布局的根视图中。
好的,感谢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(...)
之前