问题描述
我观察到 isVisible() 和/或 onVisibilityChanged() 没有报告可见性变化Android 9手机上的AppsDrawer可以覆盖动态壁纸。我猜这是因为Apps Drawer显示为半透明,因为您可以看到下面显示的LWP提示。
原因是我需要能够确定AppsDrawer何时遮盖了我的LWP,就像文档所说的那样 非常重要的是墙纸只能在可见时使用cpu 。 https://developer.android.com/reference/android/service/wallpaper/WallpaperService.Engine
是否存在一些其他方法来确定可见性或焦点变更?不确定LWP是否真正成为焦点
解决方法
这可以按预期工作:如果用户对动态壁纸完全可见(即使在启动器的下面),则将其视为可见。
动态壁纸没有回调,可以知道应用程序抽屉是否大部分遮盖了动态壁纸(并且不同的启动器可能会少很多或更多遮盖住它)。