如何确定锁定屏幕位于其他活动的顶部,还是其他活动位于锁定屏幕的顶部?

时间:2018-03-26 09:46:55

标签: android lockscreen android-windowmanager activity-manager

我遇到了问题,

  • MyActivity属于LockScreen,在这种情况下,我需要通过单击音量按钮从框架启动MyActivity;
  • MyActivity位于Lockscreen的顶部,在这种情况下,我什么都不做。

但我不知道如何在框架中区分这两种情况。我知道如何获得顶级活动,但是,LockScreen不是一项活动。

我有一个临时解决方案,如果MyActivity具有LayoutParams.FLAG_SHOW_WHEN_LOCKED属性,则设置自定义系统属性,因此我知道是否通过此自定义系统属性启动MyActivity,但我不认为这是好的。< / p>

我想知道是否有更好的解决方案。

1 个答案:

答案 0 :(得分:0)

在CameraActivity中注册BroadcastReceiver“android.intent.action.USER_PRESENT” 并在屏幕解锁事件发生时检测。根据您的要求,您可以管理您的代码。

USER_PRESENT Receiver

在您的MainActivity内部oncreate中,您可以检查屏幕是否被锁定

String content = IOUtils.toString(new FileInputStream(file), "UTF-8");