実行中のライブ壁紙があり、SCREEN_ON
イベントに反応してキャンバスに変更を表示します。ただし、一部の電話では、ユーザーは別のロック画面とホーム画面の壁紙を設定できます(Touchwiz、一部のXperiaデバイス)。ユーザーがロック画面に別の壁紙を設定した場合、ライブ壁紙は表示されません。
私が使用したGalaxyS3では、ユーザーが別のロック画面の壁紙を設定すると、WallpaperService.Engine.isVisible()
正しく戻ります。ただし、Galaxy S3 Miniでは、ライブ壁紙がアクティブなロック画面の壁紙であるかどうかを返すfalse
ため、これは機能しません。isVisible()
true
WallpaperManager.getWallpaperInfo()
または、現在のロック画面の壁紙に関係なくライブ壁紙を返し、ライブ壁紙が両方の画面に設定されている場合でも有効なドローアブルを返すWallpaperManager.peekDrawable()
ため、どちらも機能しません。を聴いてみましたが、ロック画面からのタッチイベントは、ロック解除スライダーによって消費されるため、ライブ壁紙に到達しません。getWallpaperInfo()
peekDrawable()
WallpaperService.Engine.onTouchEvent(..)
私のライブ壁紙が現在のロック画面の壁紙であるかどうかを検出する他の方法はありますか?私はリフレクションハック、回避策、これを可能にするすべてのもので大丈夫です。
編集:XperiaTLT30pではなくGalaxyNote2ボットでも動作します