[解決済み] Androidでホームボタンなどのシステムボタンを無効にする方法は?
質問
Androidアプリケーションで、ホームボタンやその他のシステムボタンを無効にしたいのですが、どうすればよいでしょうか。
例
MX Player
(
Google Playで見る
) - プレイヤー画面で "lock" アイコンを押すと、すべてのハードウェアとソフトウェアのシステムボタンをロックすることができます。
ルート化なしでも問題なく動作します。
私は、異なる Android バージョンのいくつかのデバイスでそれをテストしました。Kids Lock (プラグイン) を分解してみましたが、まだどのように動作するのか手がかりがありません。
Kids Lock (プラグイン) と同じような解決策が必要です。
MX Player
:
- ホーム、バック、および他のすべてのシステムボタンを無効にします。
何か提案はありますか?
どのように解決するのですか?
まず、本当に
Home
ボタンやその他のボタン (たとえば
Back
ボタンなど)、これはやってはいけないことです(少なくともほとんどの場合、これは悪いデザインです)。私自身のこととしてしか言えませんが、OSのボタンをクリックするようなことができないアプリをダウンロードした場合、次にすることはそのアプリをアンインストールし、非常に悪いレビューを残すことです。また、あなたのアプリはApp Storeで紹介されないと思います。
では...
に注目してください。
MX Player
は他のアプリケーションの上に描画する許可を求めていることに注意してください。
を上書きすることはできないので
Home
ボタンを
Android
デバイスに接続する必要があります (少なくとも最新の OS バージョンではありません)。
MX Player
は、アプリをロックしたときにランチャーの上に描画されます。
Home
ボタンをクリックすると、ランチャーの上に描画します。
もう少しシンプルでわかりやすい例を見るには、以下のように
Facebook メッセンジャー アプリ
.
MX Playerについてもう少し情報を提供してほしいと言われたので
Status Bar
と
Navigation Bar
"overriding"、これらのトピックも含めるように私の答えを編集しています。
まず最初に、MX Playerは
没入型フルスクリーンモード
(
デバイトビデオ
) 上で
KitKat
.
Android 4.4 (API Level 19) では、新しい
システム_ui_flag_immersive が導入されました。
フラグが導入されました。
setSystemUiVisibility()
このフラグは、アプリを本当にフルスクリーンにすることができます。
システム_ui_フラグ_hide_navigation
と
システム_ui_flag_fullscreen
フラグを使用すると、ナビゲーション バーとステータス バーが非表示になり、アプリが画面上のすべてのタッチ イベントをキャプチャできるようになります。
没入型フルスクリーン モードが有効な場合、アクティビティはすべてのタッチ イベントを引き続き受信します。ユーザーは、通常システム バーが表示される領域に沿って内側にスワイプして、システム バーを表示することができます。これにより システム_ui_flag_hide_navigation がクリアされます。 フラグをクリアします (そして システム_ui_flag_fullscreen フラグが適用されている場合)、システムバーが見えるようになります。これはまた、あなたの View.OnSystemUiVisibilityChangeListener をトリガーします。 をトリガーします。しかし、システムバーが数秒後に自動的に再び隠れるようにしたい場合は、代わりに system_ui_flag_immersive_sticky を使用することができます。 フラグを使用します。このモードで一時的に表示されるシステム バーは一時的な状態であるため、フラグの "sticky" バージョンはリスナーをトリガーしないことに注意してください。
2番目の
ステータス バーを非表示にする
3番目
ナビゲーションバーの非表示
なお、没入型フルスクリーンを使用するのは
KitKat
を非表示にすることです。
Status Bar
と
Navigation Bar
だけでなく
KitKat
.
2番目と3番目については、あまり言うことはないのですが、とにかく早く読めるということはご理解いただけたと思います。ただ、よく注意してほしいのは View.OnSystemUiVisibilityChangeListener に注目してください。 .
私が言いたいことを説明するGistを追加しました。完全ではないので、いくつかの修正が必要ですが、アイデアを得ることができます。 https://gist.github.com/Epsiloni/8303531
頑張って実装してください、そして楽しんでください。
関連
-
[解決済み] Androidのgravityとlayout_gravityの違いは何ですか?
-
[解決済み] TextViewでテキストを水平・垂直方向にセンタリングするには?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] Androidで画面の大きさをピクセル単位で取得する方法
-
[解決済み] Androidアプリケーションのアクティビティ間でデータを受け渡すにはどうすればよいですか?
-
[解決済み] Androidで現在の時刻と日付を取得する方法
-
[解決済み] Androidのランドスケープモードを無効にする方法を教えてください。
-
[解決済み] AndroidでTextViewの下にアンダーラインを引くには
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 設定ページに移動せずに位置情報サービスをオンにする
-
[解決済み] android: imageview の画像を画面に合わせて伸縮させる
-
[解決済み] アンドロイドフラグメント onRestoreInstanceState
-
[解決済み] プログラム的に電話をかけるには?
-
[解決済み] 「KotlinとAndroidで「パラメータTを推測するのに十分な情報がありません。
-
[解決済み] wrap_contentでRelativeLayoutがフルスクリーンになってしまう
-
[解決済み] Androidのadb logcatでTAG名で特定のメッセージを除外する方法は?
-
[解決済み] アンドロイドでシェイクを検出するには?
-
[解決済み] EditTextの右側のDrawableにonClickListenerを設定する [重複] [重複
-
[解決済み] FragmentPagerAdapterのgetItemが呼び出されない