Thr*_*bad 10 android wallpaper live-wallpaper
我有一个正在运行的动态壁纸,并对SCREEN_ON事件作出反应以在画布上显示更改.但是在某些手机上,用户可以设置不同的锁屏和主屏幕壁纸(Touchwiz,一些Xperia设备).当用户在锁定屏幕上设置了不同的壁纸时,我的动态壁纸不会显示.
在我使用的Galaxy S3上WallpaperService.Engine.isVisible(),false当用户设置了不同的锁屏壁纸时它正确返回.在Galaxy S3迷你,但是,这是行不通的,因为isVisible()回报率true是否不是我的动态壁纸是活跃的锁屏壁纸.
WallpaperManager.getWallpaperInfo()或者WallpaperManager.peekDrawable()也不工作,因为getWallpaperInfo()无论当前的锁屏壁纸如何都会返回我的动态壁纸,并且peekDrawable()即使我为两个屏幕设置了动态壁纸,也会返回有效的可绘制内容.我试着听WallpaperService.Engine.onTouchEvent(..),但来自锁屏的触摸事件无法通过我的动态壁纸,因为它们被解锁滑块消耗.
有没有其他方法来检测我的动态壁纸是否是当前的锁屏壁纸?我很喜欢反思黑客,变通方法,所有能让我这样做的东西.
编辑:它也适用于Galaxy Note 2,机器人不在Xperia T LT30p上
AOSP 版本的 Android 不支持锁屏壁纸。该功能完全由 OEM(三星、索尼、LG 等)开发,因此处理锁屏壁纸的 API 在 OEM 之间完全不同。此外,一些 OEM 只不支持锁屏上的动态壁纸,而其他 OEM 则支持。
由于它们是 OEM 添加的 API,因此您应该使用反射来访问它们。但是,它可以在一种 OEM 设备上运行,但相同的代码无法在其他 OEM 设备上运行。
| 归档时间: | 
 | 
| 查看次数: | 1919 次 | 
| 最近记录: |