android - 是否可以检测任何应用程序何时在 android 中全屏显示?

标签 android view

我想知道是否有某种方法可以使用 View 或其他方法让后台服务检测前台应用程序是否全屏显示。表示状态栏隐藏或不隐藏。

我在想也许可以使用常量字符串来检测 View 是否显示?但我不确定。如果需要,可以选择 Root。

谢谢大家!!

最佳答案

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

不过,这是我所做的。

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

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

这将返回具有 x 和 y 坐标值的 int 数组。然后我测试这些坐标(只真正关注 y 值)如果它等于 0,那么当前可见 Activity 是全屏的,(因为它在屏幕上的最高区域)如果状态栏正在显示,那么 View 将返回(在我的设备上为 50 像素),这意味着 View 距离屏幕边缘顶部 50 像素。

我将所有这些都放在一个有计时器的服务中,当计时器到期时,它会获取位置、运行测试并执行我需要执行的操作。当屏幕关闭时,计时器将被取消。屏幕打开后,计时器重新启动。

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

关于android - 是否可以检测任何应用程序何时在 android 中全屏显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18049543/

相关文章:

android - 如何在 Android 中创建类似 Twitter 个人资料页面的布局

android - 在 Android OpenGL ES 中使用 Wavefront .obj 的纹理坐标的问题

android - 电子邮件 ContentResolver 的问题

android - React-Native 原生 Android 模块 - Toast 示例

java - 我可以从 Dalvik 和 Android 工具链中获得哪些优化?

python - 在 Django 中的 View 之间共享上下文?

swift - 从其他 View Controller 打开窗口+ View

android - 在 DrawerLayout 上方放置一个 View (在抽屉上方)

java - Android View 或 Activity ?

ios - 用 UITableView 覆盖 UIView