Узнайте, установлены ли разные обои для домашнего и фиксированного экрана

У меня есть текущие живые обои и реагировать на событие SCREEN_ON чтобы отображать изменения на холсте. Однако на некоторых телефонах пользователь может установить другой экран блокировки экрана и обои рабочего стола (Touchwiz, некоторые устройства Xperia). Когда пользователь установил разные обои на lockscreen, мои живые обои не отображаются.

На Galaxy S3 я использовал WallpaperService.Engine.isVisible() и он корректно возвращает false когда пользователь установил разные обои затвора экрана. Однако на Galaxy S3 Mini это не работает, потому что isVisible() возвращает true ли мои живые обои активными isVisible() экрана.

WallpaperManager.getWallpaperInfo() или WallpaperManager.peekDrawable() тоже не работают, потому что getWallpaperInfo() возвращает мои живые обои, независимо от текущих обоев экрана, и peekDrawable() возвращает допустимый чертеж, даже если мои живые обои установлены для обоих экранов , Я попробовал слушать WallpaperService.Engine.onTouchEvent(..) , но события касания с экрана блокировки не доходят до моих живых обоев, потому что они потребляются слайдером разблокировки.

Есть ли другой способ определить, являются ли мои живые обои текущими обоими экранами экрана? Я в порядке с размышлениями, обходными решениями, всем, что позволит мне это сделать.

EDIT: он также работает на Galaxy Note 2, бот не на Xperia T LT30p

Solutions Collecting From Web of "Узнайте, установлены ли разные обои для домашнего и фиксированного экрана"

Обои для Lockscreen не поддерживаются версией Android AOSP. Эта особенность полностью выполнена OEM-производителями (Samsung, Sony, LG и т. Д.), И, таким образом, API-интерфейсы для работы с обоими экранными экранами совершенно разные между OEM-производителями. Кроме того, некоторые OEM-производители только не поддерживают живые обои на голубоватых экранах, а другие делают.

Поскольку они добавлены OEM APIS, вы должны использовать отражения для доступа к ним. Однако он будет работать на одном OEM-устройстве, но тот же код не будет работать на других устройствах OEM-производителей.