Honeycomb では、TYPE_SYSTEM_OVERLAY でシステム オーバーレイを作成し、FLAG_WATCH_OUTSIDE_TOUCH でタッチを受け取ることができました。
今、ICSは何かを変えました。システム オーバーレイを作成することはできますが、タッチできません。
今、私はTYPE_SYSTEM_ALERTで同じものを作成してタッチすることができますが、タッチイベントをキャッチするだけで、ハニカムのようにそれらを渡しません。
何か案は?
敬具
Honeycomb では、TYPE_SYSTEM_OVERLAY でシステム オーバーレイを作成し、FLAG_WATCH_OUTSIDE_TOUCH でタッチを受け取ることができました。
今、ICSは何かを変えました。システム オーバーレイを作成することはできますが、タッチできません。
今、私はTYPE_SYSTEM_ALERTで同じものを作成してタッチすることができますが、タッチイベントをキャッチするだけで、ハニカムのようにそれらを渡しません。
何か案は?
敬具
オーバーレイ ビューを作成するには、LayoutParams を設定するとき
にタイプを に設定しないTYPE_SYSTEM_OVERLAY
でください。
代わりに に設定しTYPE_PHONE
ます。
次のフラグを使用します。
FLAG_NOT_TOUCH_MODAL
FLAG_WATCH_OUTSIDE_TOUCH
FLAG_NOT_TOUCH_MODAL
<< これはかなり重要だと思いました。これがないと、フォーカスがオーバーレイに与えられ、ソフトキー (ホーム、メニューなど) の押下が下のアクティビティに渡されません。
あなたが説明することはすべて真実です。前者の振る舞いがタップジャック攻撃の原因であったため、おそらくセキュリティを強化することになるでしょう。最近、この変更についてブログに投稿しました。
何か案は?
どちらも使用しないでください。