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