Ich habe ein Live-Hintergrundbild und reagieren auf SCREEN_ON
Ereignis, um Änderungen auf der Leinwand anzuzeigen. Bei einigen Telefonen kann der Benutzer jedoch einen anderen Sperrbildschirm und Homescreen-Hintergrund einstellen (Touchwiz, einige Xperia-Geräte). Wenn der Benutzer ein anderes Hintergrundbild auf dem Sperrbildschirm eingestellt hat, wird mein Live-Hintergrundbild nicht angezeigt.Finden Sie heraus, ob verschiedene Home- und Lockscreen-Hintergründe eingestellt sind
Auf dem Galaxy S3 habe ich WallpaperService.Engine.isVisible()
verwendet und es gibt false
korrekt zurück, wenn der Benutzer ein anderes Lockscreen-Hintergrundbild festgelegt hat. Auf dem Galaxy S3 Mini funktioniert dies jedoch nicht, denn isVisible()
gibt true
zurück, ob mein Live Wallpaper das aktive Lockscreen-Hintergrundbild ist oder nicht.
WallpaperManager.getWallpaperInfo()
oder WallpaperManager.peekDrawable()
auch nicht arbeiten, weil getWallpaperInfo()
mein Live-Wallpaper liefert unabhängig von den aktuellen Lockscreen Tapeten und peekDrawable()
gibt einen gültigen ziehbar auch wenn mein Live-Wallpaper für beiden Bildschirme eingestellt ist. Ich habe versucht, WallpaperService.Engine.onTouchEvent(..)
zu hören, aber die Berührungsereignisse vom Lockscreen gelangen nicht zu meinem Live-Hintergrundbild, weil sie vom Unlock-Schieberegler verbraucht werden.
Gibt es eine andere Möglichkeit zu erkennen, ob mein Live Wallpaper das aktuelle Lockscreen Wallpaper ist? Mir geht es gut mit Reflection-Hacks, Workarounds, alles, was mich das tun lässt.
EDIT: es funktioniert auch auf dem Galaxy Note 2, bietet nicht auf der Xperia T LT30p
Haben Sie versucht, WallpaperService.Engine.onVisibilityChanged (..)? – StarPinkER
Ja, 'isVisible()' gibt nur den letzten Wert zurück, der an 'onVisibilityChanged()' übergeben wurde, so dass beide an derselben Datenbank arbeiten. – Thrakbad
Haben Sie das Problem gelöst? Wenn ja, würde ein wenig Code geschätzt werden –