我有一个正在运行的动态壁纸并对SCREEN_ON
事件做出反应以在画布上显示更改。然而,在某些手机上,用户可以设置不同的锁屏和主屏幕壁纸(Touchwiz,一些 Xperia 设备)。当用户在锁屏上设置了不同的壁纸时,我的动态壁纸不会显示。
在我使用的 Galaxy S3 上,当用户设置了不同的锁屏壁纸时WallpaperService.Engine.isVisible()
,它会正确返回。false
但是,在 Galaxy S3 Mini 上,这不起作用,因为isVisible()
返回true
我的动态壁纸是否是活动的锁屏壁纸。
WallpaperManager.getWallpaperInfo()
或者WallpaperManager.peekDrawable()
也不工作,因为getWallpaperInfo()
无论当前的锁屏壁纸如何,都会返回我的动态壁纸,并且peekDrawable()
即使我的动态壁纸为两个屏幕都设置了,也会返回一个有效的可绘制对象。我试着听WallpaperService.Engine.onTouchEvent(..)
,但来自锁屏的触摸事件并没有传递到我的动态壁纸,因为它们被解锁滑块消耗掉了。
有没有其他方法可以检测我的动态壁纸是否是当前的锁屏壁纸?我对反射黑客、解决方法以及所有能让我做到这一点的东西都很好。
编辑:它也适用于 Galaxy Note 2,而不适用于 Xperia T LT30p