动态壁纸isVisible / onVisibilityChanged无法在Android 9+应用抽屉中使用

问题描述

我观察到 isVisible() 和/或 onVisibilityChanged() 没有报告可见性变化Android 9手机上的AppsDrawer可以覆盖动态壁纸。我猜这是因为Apps Drawer显示为半透明,因为您可以看到下面显示的LWP提示

原因是我需要能够确定AppsDrawer何时遮盖了我的LWP,就像文档所说的那样 非常重要的是墙纸只能在可见时使用cpu https://developer.android.com/reference/android/service/wallpaper/WallpaperService.Engine

是否存在一些其他方法来确定可见性或焦点变更?不确定LWP是否真正成为焦点

解决方法

这可以按预期工作:如果用户对动态壁纸完全可见(即使在启动器的下面),则将其视为可见。

动态壁纸没有回调,可以知道应用程序抽屉是否大部分遮盖了动态壁纸(并且不同的启动器可能会少很多或更多遮盖住它)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...