2012-03-02 83 views
0

我希望我的应用能够显示永久可见的视图(如状态栏),无论用户使用哪个应用,除了全屏应用(如游戏)以外。如何在全屏应用程序启动时隐藏系统覆盖窗口?

到目前为止,我的应用程序启动了一个服务,该服务将视图膨胀并将其作为TYPE_SYSTEM_OVERLAY添加到WindowManager,如here所述。

我遇到的问题是,当我启动一个全屏应用程序(画廊,愤怒的小鸟等)时,我的覆盖仍然存在。如何检测全屏应用何时启动或状态栏已隐藏,以便我可以删除它?

回答

1

这不支持第三方应用程序,对不起。

+0

我在公共API中找不到任何东西,但它绝对可行。有一个名为“StatusBar +”的应用程序,展示了没有根目录的这种确切行为。 – Martin 2012-03-02 08:09:44

0

在您的服务中,创建一个不断测量其膨胀视图高度的计时器。如果视图高度增加25dip,则可能意味着状态栏消失,手机现在处于全屏模式。如果发生这种情况,您可以将叠加视图的可见性设置为GONE。

很明显,轮询视图高度是一种破解,但它可能是唯一的方法。

相关问题