2012-03-02 2 views
0

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

До сих пор мое приложение запускает сервис, который раздувает представление и добавляет его в WindowManager как TYPE_SYSTEM_OVERLAY, как описано here.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я запускаю полноэкранное приложение (галерея, Angry Birds и т. Д.), Мой оверлей все еще есть. Как определить, когда запущено полноэкранное приложение или когда строка состояния скрыта, поэтому я могу ее удалить?

ответ

1

Это не поддерживается сторонними приложениями, извините.

+0

Я ничего не могу найти в публичных API, но это определенно выполнимо. Существует приложение под названием «StatusBar +», которое демонстрирует это точное поведение без root. – Martin

0

В вашем сервисе создайте таймер, который постоянно измеряет высоту изображения, которое он раздувает. Если высота представления увеличивается на 25dip, это, вероятно, означает, что строка состояния исчезла, и телефон теперь находится в полноэкранном режиме. Если это произойдет, вы можете установить видимость представления наложения GONE.

Очевидно, что опрос высоты просмотра является взломом, но это может быть единственный способ.

Смежные вопросы