【问题标题】:WallpaperService - Engine - Distinguish system and lockscreenWallpaperService - 引擎 - 区分系统和锁屏
【发布时间】:2021-03-14 02:19:51
【问题描述】:

我正在构建一个壁纸更改应用程序(支持动态壁纸 - 我为此目的使用了 WallpaperService),我需要知道使用什么引擎来显示锁定屏幕或系统背景(以提供正确的壁纸以显示给用户)。或者我可以创建两个服务(一个用于锁屏,一个用于系统)并限制用户只允许一个选项?

【问题讨论】:

    标签: android live-wallpaper


    【解决方案1】:

    TLDR:动态壁纸始终被视为系统壁纸,但如果用户没有为其指定位图(静态图像),则会在锁定屏幕上显示。

    经过几个小时的研究,我终于在 WallpaperManagerService 类中找到了答案。

    动态壁纸经过特殊处理。

    • 如果用户没有锁屏壁纸,无论选择哪个都将设置为两者(锁+系统)。
    • 如果用户有锁屏壁纸,可以设置为仅系统,也可以选择覆盖两者。
    • 如果用户激活了动态壁纸并想要设置锁屏壁纸,则锁屏壁纸会更改,而系统(= 实时)保持不变
    • 如果用户激活了动态壁纸并想要设置系统壁纸,则锁定+系统都将被替换。

    【讨论】:

    • 如何设置仅用于锁定的动态(视频)壁纸?对于位图壁纸,我使用的是 WallpaperManager.FLAG_LOCK: wallpaperManager.setBitmap(bitmap, null, false, WallpaperManager.FLAG_LOCK);谢谢
    猜你喜欢
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2020-01-16
    • 2019-05-09
    • 2020-09-15
    • 2013-12-09
    • 2023-01-05
    相关资源
    最近更新 更多