TYPE_SYSTEM_OVERLAY в ICS

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

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

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

Есть идеи?

С уважением

2 ответа

Решение

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

Есть идеи?

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

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

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

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

FLAG_NOT_TOUCH_MODAL

FLAG_WATCH_OUTSIDE_TOUCH

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

Другие вопросы по тегам