动态壁纸 isVisible/onVisibilityChanged 不适用于 Android 9+ 应用程序抽屉

Posted

技术标签:

【中文标题】动态壁纸 isVisible/onVisibilityChanged 不适用于 Android 9+ 应用程序抽屉【英文标题】:Live Wallpaper isVisible/onVisibilityChanged not working with Android 9+ App drawer 【发布时间】:2021-01-03 20:22:27 【问题描述】:

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

正如文档所说,我需要能够确定 AppsDrawer 何时掩盖了我的 LWP 的原因 壁纸只在可见时使用 CPU,这一点非常重要.. https://developer.android.com/reference/android/service/wallpaper/WallpaperService.Engine

是否有其他方法来解决可见性或焦点变化?不确定 LWP 是否真正得到关注

【问题讨论】:

让我重新定义一下:我们能否扩展墙纸引擎,以便在 LWP 显示为不完全可见时进行注册? 【参考方案1】:

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

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

【讨论】:

随着不同的启动器,老派的品种,当显示 AppsDrawer 时,可见性将切换到不可见。半透明的新方法对最终用户几乎没有实际价值,但它阻止了我做一些我想在可见性变化时添加的 UX 事情。 作为一个动态壁纸应用程序的开发者,我感受到了你。不幸的是,没有办法解决它。

以上是关于动态壁纸 isVisible/onVisibilityChanged 不适用于 Android 9+ 应用程序抽屉的主要内容,如果未能解决你的问题,请参考以下文章

Android自定义动态壁纸开发

Android : 恢复动态壁纸

安卓怎么让壁纸动起来

Windows10设置动态桌面壁纸

Windows10设置动态桌面壁纸

微信主页动态壁纸怎么自动播放