Root を使用せずにシステム全体のイマーシブ モードを有効にする方法

root アクセスを必要とせずにイマーシブ モードをシステム全体 (またはアプリごと) で有効にする方法に関するチュートリアル。 すべての Android 4.4 以降のデバイスで動作します。

携帯電話の画面がますます大きくなるにつれて、鮮明で美しい HD 画面全体を使用してコンテンツを表示できるように、ステータス バーやナビゲーション バーを非表示にしたい場合があります。

Android 4.4 以降、アプリケーションは実装できるようになりました イマーシブモード エンドユーザーに真の全画面エクスペリエンスを提供します。 残念ながら、Google と OEM は、ユーザーがイマーシブ モードを有効にするタイミングを手動で制御できる機能を公開したことはありません。 というサードパーティ製アプリケーション GMD フルスクリーンイマーシブ モード は数年前から回避策を提供していますが、このアプリを使用する際の最大の問題は、ソフト キーボードが壊れることです。

ユーザーはかなり長い間、システム全体のイマーシブ モードをトリガーする ADB コマンドについて考えてきましたが、 長年、ADB 端末から切断されたときにこのコマンドを使用するには root が必要であると考えられていました。 アクセス。 しかし、昨年末にユーザーは、特定の ADB コマンドが実際にデバイス上でトリガーされる可能性があることを発見しました。 ルートアクセスなしで、アプリケーションに特定の権限がある場合に限ります。 これは、次のことができることを意味します システム全体のイマーシブ モードを有効にする オンデマンド. たとえば、Nougat タイルを作成してイマーシブ モードを切り替えたり、アプリごとにイマーシブ モードを設定したりできます。


ルートなしでイマーシブ モードを切り替える

上のビデオでわかるように、押すとイマーシブ モードに切り替わる Nougat タイルを作成しました。 これは私のroot化されていないHuawei Mate 9上にありますが、動作するはずです。 ほぼすべての Android 4.4 以降のデバイス。 これを機能させるには、2 つのアプリケーションだけが必要です。 タスカー そして オートツールベータ版. もインストールする必要があります 自動通知 これからヌガータイルを作りたい場合は、必須ではありません。

両方のアプリケーションをインストールしたら、 WRITE_SECURE_SETTINGS イマーシブ モード (後で説明する他の優れた設定の中でも特に) を切り替えることができるようにするには、AutoTools へのアクセス許可が必要です。 これは、イマーシブ モードのコマンドが 設定。 グローバル ただし、コマンドの正確な構文は AOSP には隠されています。 まず、AutoTools に必要な権限を付与する方法を説明し、次に Tasker でコマンドを使用する方法を説明します。


Android の権限管理システムでは、アプリケーションはマニフェスト ファイルで付与する権限を定義します。 その後、ユーザーはインストール時 (Marshmallow 以前) またはオンデマンド (Marshmallow+) で権限を付与または拒否できます。 ただし、アプリケーションがマニフェストで要求しても付与できない特定の権限があります。 WRITE_SECURE_SETTINGS. これは、これと同じくらい強力な権限をアプリケーションに付与すると、そのアプリケーションがデバイスを大幅に制御できるようになるためです。

ただし、必要なアプリに WRITE_SECURE_SETTINGS 権限を付与するために使用できる回避策が 1 つあります。 ADB を使用することで パッケージマネージャー (午後) ツールを使用すると、必要なアプリケーションに任意の権限を付与できます (アプリケーションがマニフェスト ファイルでその権限を要求している場合)。

最初に行う必要があるのは、 ADBバイナリをインストールする コンピュータにインストールし、続いて デバイスに適したドライバー. 次に、開発者向けオプションで USB デバッグを有効にし (まだ設定していない場合は、[設定] --> [端末情報] に移動し、[ビルド番号] を 7 回タップします)、携帯電話をコンピュータに接続します。 最後に、ターミナルを開いたら、次のコマンドを送信します。

adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS

AutoTools は、デバイス上のグローバル、セキュア、またはシステム設定を変更できるようになりました。 これらの設定を試すことができるさまざまな方法があり、利用可能な設定のリストは次のとおりです。 各カテゴリはデバイスとソフトウェアのビルドに完全に依存しますが、その議論はまた別の機会に行います。 時間。 いずれにせよ、オートツールを使用してイマーシブ モードを切り替える方法を説明していきます。


Tasker を使用して Nougat タイル経由でイマーシブ モードを切り替える

タイル経由でイマーシブ モードを切り替えるには、明らかに Android Nougat が必要です。そのため、Nougat をお持ちでない場合は、このセクションをスキップして、アプリごとにイマーシブ モードを切り替える方法を学習してください。 まだ行っていない場合は、Google Play ストアから AutoNotification をダウンロードし、通知アクセスを許可します。 この Tasker プラグインは、独自のカスタム通知タイルを作成するために使用します。

ここでは、Tasker に精通している人向けのプロフィールの説明を示します。 Tasker にあまり慣れていない場合は、ステップバイステップの手順を読んでください。

ヌガー タイル イマーシブ モードの切り替え

Profile: Toggle Immersive Mode (30)
Event: AutoNotification [ Configuration: Event Behaviour
Filter: immersivemode ]
Enter: Immersive Mode (33)
A1: AutoNotification Tiles [ Configuration: Tile: 1
Command: immersivemode
Label: Immersive mode
Icon: /storage/emulated/0/Tasker/immersive.png
State: 999 Timeout (Seconds):60 ]
A2: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]

続きを読む

Taskerを開き、 + 右下隅のボタン。 を作成します イベント コンテキストと選択 プラグイン --> 自動通知。 鉛筆アイコンをクリックして、自動通知の構成ページを開きます。 下 コマンドフィルター 入力 イマーシブモード. これは、Nougat タイルをタップしたときに送信される正確なコマンドです。

次に、このプロファイルに関連付けられた新しいタスク (任意の名前) を作成し、最初のアクションとして次の場所に移動します。 プラグイン --> 自動通知 --> タイル. タイル番号については、最初のタイルを選択します。 のために 指示 入力 イマーシブモード まさに書かれているとおりです。 の ラベル がタイルの下に表示されるので、「Immersive Mode」などの名前を付けます。 のために アイコン, このセクションの冒頭で添付したアイコンを内部ストレージに保存して使用してください。 最後に、  選択する アクティブ/非アクティブを切り替えます。

完了したら、タスクを 1 回実行して (タスク作成画面の左下にある再生ボタンを押します)、タイルにデータが入力されます。 利用可能な通知タイルのリストを展開すると、新しいイマーシブ モードの切り替えが表示されるはずです。


Tasker を使用してアプリごとにイマーシブ モードを切り替える

アプリごとにイマーシブ モードを切り替えるのは非常に簡単です。必要なのは、アプリケーション コンテキストを作成することだけです。 アプリケーションの起動時または終了時、およびその際にトリガーされる Tasker です。イマーシブ モードは次のとおりです。 切り替えられました。 Tasker でアプリケーションを監視するには、そのタスクを有効にする必要があります。 アクセシビリティサービス.

ここでは、Tasker に精通している人向けのプロフィールの説明を示します。 Tasker にあまり慣れていない場合は、ステップバイステップの手順を読んでください。

アプリごとのイマーシブ モード

Profile: Per-App Immersive Mode (192)
Application: Chrome or XDA Labs
Enter: Anon (199)
A1: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]

Exit: Anon (204)
A1: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]

続きを読む

特定のアプリケーションが開いているときにイマーシブ モードを開始するためのプロファイルを作成するため、最初に Tasker を開きます。 Taskerを開き、 + 右下隅のボタンをクリックして、新しいプロファイルを作成します。 コンテキスト タイプとして、次を選択します。 応用 をクリックして、イマーシブ モードをアクティブにするすべてのアプリケーションを選択します。

完了したら、戻るボタンを押すと、Tasker がタスクを作成するように求めます。 タスクに名前を付ける必要はないので、チェックマークを押すだけでタスクの作成が開始されます。 タスク作成画面に入ったら、追加する必要があるアクションは 1 つだけです。 を押します。 + 一番下のボタンをクリックして、 プラグイン --> オートツール --> 安全な設定. 鉛筆アイコンを押してオートツールを設定します。 ここに行きます 画面 次に、をタップします イマーシブモード そして「」を選択してくださいトグル."

最後に行う必要があるのは、アプリケーションを終了するときにイマーシブ モードを無効にすることです。 Taskerのメイン画面に戻り、 長押し 作成したばかりのタスクで、 タスクの終了. 終了タスクを作成するときは、最初のタスクに追加したのと同じアクションを追加するだけです。これにより、イマーシブ モードが切り替わります。


イマーシブ モードの微調整

前に述べたように、イマーシブ モードを強制するために使用できる正確なコマンドは次のとおりです。 AOSP から収集. 次のコマンドのいずれかを発行して、通知バーのみを非表示にするか、ナビゲーション バーのみを非表示にするようにイマーシブ モードを設定できます。

settings put global policy_control immersive.status=*

settings put global policy_control immersive.navigation=*

もちろん、AutoTools では実際にこのようにシェル コマンドを直接送信することはできませんが、代わりにそのインターフェイスを使用してコマンドを送信します。 AutoTools の安全な設定で「カスタム設定」を選択し、設定タイプを「グローバル」に設定し、「入力タイプ」を 「文字列」、名前には「policy_control immersive.status=*」または「policy_control」と入力する必要があります。 immersive.navigation=*"。 ステータス バーまたはナビゲーション バーのいずれかを非表示にするイマーシブ モードを希望する場合は、ヌガー タイルまたはアプリごとのコントロールに使用したコマンドの代わりにこのコマンドを使用できます。


ダウンロードしてTaskerにインポートする

いつものように、ダウンロードしてインポートできるスクリプトの XML ファイルを提供しています。 以下のリンクからファイルをダウンロードし、内部ストレージの任意の場所に保存するだけです。 Tasker を開き、環境設定で初心者モードを無効にします。 次に、メイン画面に戻り、上部の「プロファイル」タブを長押しします。 ポップアップが表示され、オプションの 1 つとして「インポート」が表示されます。 それをタップし、.prf.xml ファイルを保存した場所を参照し、インポートするファイルを選択します。

通知タイルをインポートすることを選択した場合は、必ずイマーシブ モード アイコンを immersive.png として保存し、/sdcard/Tasker に保存してください。 アプリごとのプロファイルをインポートすることを選択した場合、私のサンプルは Chrome または XDA Labs を使用する場合にのみトリガーするように設定されているため、必ずそのプロファイルがトリガーされるアプリケーションをカスタマイズしてください。

通知タイルのダウンロード イマーシブ モードの切り替え

アプリごとのイマーシブ モード切り替えプロファイルをダウンロードする

このヒントがお役に立てば幸いです。 これがうまくいくかどうか、以下のコメントでお知らせください。