TYPE_SYSTEM_OVERLAY в ICS

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

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

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

Есть идеи?

С уважением

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

Есть идеи?

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

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

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

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

FLAG_NOT_TOUCH_MODAL

FLAG_WATCH_OUTSIDE_TOUCH

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