1. ホーム
  2. android

[解決済み] Androidでホームボタンなどのシステムボタンを無効にする方法は?

2023-08-07 09:40:31

質問

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 BarNavigation 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 BarNavigation Bar だけでなく KitKat .

2番目と3番目については、あまり言うことはないのですが、とにかく早く読めるということはご理解いただけたと思います。ただ、よく注意してほしいのは View.OnSystemUiVisibilityChangeListener に注目してください。 .

私が言いたいことを説明するGistを追加しました。完全ではないので、いくつかの修正が必要ですが、アイデアを得ることができます。 https://gist.github.com/Epsiloni/8303531

頑張って実装してください、そして楽しんでください。