TYPE_SYSTEM_OVERLAY в ICS

В Honeycomb мне удалось создать оверлей системы с TYPE_SYSTEM_OVERLAY и получить штрихи с FLAG_WATCH_OUTSIDE_TOUCH.

Теперь ICS что-то изменила. Я все еще могу создать оверлей системы, но я не могу получить прикосновения.

Теперь я могу создать то же самое с TYPE_SYSTEM_ALERT и получить штрихи, но он просто ловит прикосновения, а не передает их, как в Honeycomb.

Любая идея?

С уважением

Ответ 1

Все, что вы описали, верно. Предполагается, что это ужесточает безопасность, поскольку прежнее поведение было источником нападений с использованием перехвата. Недавно я написал сообщение в блоге об этом изменении.

Любая идея?

Не используйте ни один из них.

Ответ 2

Чтобы создать представление наложения, при настройке LayoutParams НЕ установите тип TYPE_SYSTEM_OVERLAY.

Вместо этого установите значение TYPE_PHONE.

Используйте следующие флаги:

FLAG_NOT_TOUCH_MODAL

FLAG_WATCH_OUTSIDE_TOUCH

FLAG_NOT_TOUCH_MODAL < Я нашел это очень важным. Без него основное внимание уделяется нажатию наложения и мягкой клавиши (дома, меню и т.д.), Которые не передаются в действие ниже.