gpt4 book ai didi

android - 查看是否设置了不同的主屏幕和锁屏壁纸

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:13:08 24 4
gpt4 key购买 nike

我有一个正在运行的动态壁纸并对 SCREEN_ON 事件使用react以在 Canvas 上显示更改。然而,在某些手机上,用户可以设置不同的锁屏和主屏幕墙纸(Touchwiz,某些 Xperia 设备)。当用户在锁屏上设置不同的壁纸时,我的动态壁纸不会显示。

在 Galaxy S3 上,我使用了 WallpaperService.Engine.isVisible(),当用户设置不同的锁屏壁纸时,它会正确返回 false。然而,在 Galaxy S3 Mini 上,这不起作用,因为无论我的动态壁纸是否是 Activity 的锁屏壁纸,isVisible() 都会返回 true

WallpaperManager.getWallpaperInfo()WallpaperManager.peekDrawable() 也不起作用,因为 getWallpaperInfo() 无论如何都会返回我的动态壁纸当前锁屏壁纸,并且 peekDrawable() 返回一个有效的可绘制对象,即使我的动态壁纸已为两个屏幕设置。我试过听 WallpaperService.Engine.onTouchEvent(..),但是来自锁屏的触摸事件没有传递到我的动态壁纸,因为它们被解锁 slider 消耗了。

有没有其他方法可以检测我的动态壁纸是否是当前的锁屏壁纸?我对反射黑客、变通办法以及所有能让我做到这一点的东西都很好。

编辑:它也适用于 Galaxy Note 2,但不适用于 Xperia T LT30p

最佳答案

AOSP 版本的 Android 不支持锁屏壁纸。该功能完全由 OEM(三星、索尼、LG 等)制造,因此处理锁屏壁纸的 API 在 OEM 之间完全不同。此外,一些 OEM 仅不支持锁屏上的动态壁纸,而其他 OEM 则支持。

由于它们是 OEM 添加的 APIS,您应该使用反射来访问它们。但是,它可以在一个 OEM 设备上运行,但相同的代码将无法在其他 OEM 设备上运行。

关于android - 查看是否设置了不同的主屏幕和锁屏壁纸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14484394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com