是否有可能检测到什么应用程序在Android中全屏显示?

Set*_*eth 4 android view

我想知道是否有某种方式使用可能的视图或某些东西来检测前台应用程序是否全屏显示后台服务.意味着状态栏被隐藏或未隐藏.

我在考虑使用常量字符串来检测视图是否显示?但我不确定.如果需要,Root是一个选项.

多谢你们!!

Set*_*eth 9

如何使用广播接收器或类似的东西.这将是理想的,但是对于全屏请求没有这样的广播.

这是我做过的事情.

我创建了一个不可见的叠加层,这个不可见的叠加层大小为0 x 0 :)

然后我用 View.getLocationOnScreen(int[]);

这将返回int数组,其中包含x和y坐标的值.然后我测试这些坐标(只关注y值),如果它等于0,那么当前可见活动是全屏,(因为它是屏幕上最高的区域)如果显示状态栏,那么视图将返回(我的设备上有50个像素),这意味着视图距屏幕边缘顶部50个像素.

我把所有这些放在一个有计时器的服务中,当计时器到期时,它获取位置,运行测试,并做我需要做的事情.然后在屏幕关闭时取消计时器.屏幕打开时,计时器重新启动.

我检查了它使用了多少CPU,并且它在System Tuner中显示为0.0%.