これはリフレクションを使用して可能です。問題は山ほどあるけど。
通知パネルが開いているか、開いているかを確認する方法はありません。したがって、Activity#onWindowFocusChanged(boolean) に依存する必要があります。そして、ここから問題が始まります。
public void onWindowFocusChanged (boolean hasFocus)
Called when the current Window of the activity gains or loses focus. This is the best indicator of whether this activity is visible
ユーザーに。
まず、EXPAND_STATUS_BAR 権限が必要です。
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
から取得 通知パネルのプルダウンを無効にする
キットカット用
キットカット デバイスでフル スクリーン モードでステータスが表示されるのを防ぐことができなかったため、要件を満たすハックを作成しました。つまり、ステータス バーの展開をブロックしました。
それが機能するために、アプリは全画面表示になりませんでした。ステータス バーにオーバーレイを配置し、すべての入力イベントを消費しました。ステータスの拡大を防いだ。
- customViewGroup は、任意のレイアウト (フレーム、相対レイアウトなど) を拡張し、タッチ イベントを消費するカスタム クラスです。
- タッチ イベントを消費するには、ビュー グループの onInterceptTouchEvent メソッドをオーバーライドし、true を返します
キットカット以上については、この回答を参照してください