首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >查看是否设置了不同的主屏幕和锁屏壁纸

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

Stack Overflow用户
提问于 2013-01-24 00:24:28
回答 2查看 2.3K关注 0票数 10

我有一个正在运行的实时墙纸和react to SCREEN_ON事件,以便在画布上显示更改。然而,在一些手机上,用户可以设置不同的锁屏和主屏幕墙纸(Touchwiz,一些Xperia设备)。当用户在锁屏上设置了不同的墙纸时,我的实时墙纸不会显示。

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

WallpaperManager.getWallpaperInfo()WallpaperManager.peekDrawable()也不起作用,因为无论当前的锁屏墙纸是什么,getWallpaperInfo()都会返回我的实时墙纸,而peekDrawable()则会返回一个有效的可抽取值,即使我的动态墙纸在两个屏幕上都设置了。我试着听WallpaperService.Engine.onTouchEvent(..),但来自锁屏的触摸事件无法到达我的实时墙纸,因为它们被解锁滑块消耗。

有没有其他方法来检测我的活动墙纸是否是当前的锁屏墙纸?我对反射--hack,变通,所有能让我这么做的东西都很满意。

编辑:它也适用于Galaxy Note2,而不适用于Xperia T LT30p

EN

回答 2

Stack Overflow用户

发布于 2013-02-03 13:49:37

Android的AOSP版本不支持锁屏墙纸。该功能完全由原始设备制造商(三星、索尼、LG等)制造。因此,用于处理锁屏墙纸的API在OEM之间完全不同。此外,一些OEM只支持loockscreens上的动态墙纸,而另一些OEM则支持。

因为它们是OEM添加的APIS,所以您应该使用反射来访问它们。然而,它可以在一个OEM设备上工作,但相同的代码不能在其他OEM设备上工作。

票数 2
EN

Stack Overflow用户

发布于 2018-07-13 00:22:15

从API24开始,可以使用:

然后你就可以知道哪种墙纸是哪种类型的。

另一种选择是:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14484394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档