У меня есть текущие живые обои и реагировать на событие SCREEN_ON
, чтобы отображать изменения на холсте. Однако на некоторых телефонах пользователь может установить различные блокировки экрана и обои рабочего стола (Touchwiz, некоторые устройства Xperia). Когда пользователь установил разные обои на экране блокировки, мои живые обои не отображаются.
В Galaxy S3 я использовал WallpaperService.Engine.isVisible()
, и он правильно возвращает false
, когда пользователь установил разные обои для экрана. Однако на Galaxy S3 Mini это не работает, потому что isVisible()
возвращает true
, являются ли мои живые обои активными обоими экранами экрана.
WallpaperManager.getWallpaperInfo()
или WallpaperManager.peekDrawable()
тоже не работают, потому что getWallpaperInfo()
возвращает мои живые обои, независимо от текущих обоев экрана, и peekDrawable()
возвращает допустимый чертеж, даже если мои живые обои установлены для обоих экранов. Я пробовал слушать WallpaperService.Engine.onTouchEvent(..)
, но события касания с экрана блокировки не доходят до моих живых обоев, потому что они потребляются слайдером разблокировки.
Есть ли другой способ определить, являются ли мои живые обои текущими обоими экранами экрана? Я в порядке с размышлениями, обходными решениями, всем, что позволит мне это сделать.
EDIT: он также работает на Galaxy Note 2, бот не на Xperia T LT30p