Android Oreo に実装された新しい権限のおかげで、システム アプリケーションは音量キーの長押しを検出するリスナーを設定できるようになりました。
デバイスのさまざまなハードウェア ボタンやソフトウェア ボタンに機能を追加することは、Android 愛好家が長年取り組んできたことです。 ほとんどの人は次のようなアプリケーションについて知っています。 ボタンマッパー XDA 認定開発者による フレア2、についても話しました。 当時の他のリマッパー ソリューション Galaxy S8が発売されました。 これらのソリューションはこれらのアクションを特定の方法で処理していましたが、Google は Android Oreo に音量キーの長押し用のリスナーを実装しているようです。 これは、将来のアプリケーションは、画面が表示されている間でも音量キーの長押しに反応できる可能性があることを意味します。 オフになっており、頻繁にリクエストされる機能 (ボリューム キーによる音楽トラック コントロール) をカスタム ROM から引き継ぐために使用できます。 を押します。
それについて言及したいと思います この機能 現在利用できるユーザー向けビルドでは実際には有効になっていません。 ただし、私たちが見つけたコミットによって証明されているように、このサポートは存在しており、OEM が特定のデバイスに対して有効にできることを意味します。 前述したように、従来の再マッピング アプリケーションは、KeyEvent が送信されたかどうかを検出することで機能します (長押しすると、これらのアプリはキーイベント間の時間を測定します) キー ダウン イベントとキー アップ イベント、2 回押しの場合はダウン プレス間の時間を測定します)、ただし、これらの KeyEvent は画面が表示されている間のみ送信されます。 の上。 さらに、通常はアクセシビリティ サービスの使用も必要となり、パフォーマンスに負担がかかる可能性があります。
一般的なボタンの再マップ ソリューションは、トーチのオンとオフを切り替えたり、アプリケーションを開いたり、通知パネルをプルダウンしたりするために使用される回避策であると考えられます。 ただし、Google が Android Oreo に実装したものは、これをさらに一歩進めて、システム アプリケーション自体が音量ボタンの長押しリスナーを設定できるようにします。 これにより、プラットフォームが音量ボタンが数秒間押されたことを検出すると、ユーザーはアプリケーション自体内で何かをトリガーできる可能性があります。
Google が Android Oreo にこれのサポートを組み込んだ方法では、これはそのままの状態で「特権」 (別名プリインストールされたシステム) アプリケーションでのみ機能します。 OEM が必要なのは、特権アプリケーションに android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER
許可 リスナーを設定するため。 ただし、ADB コマンドを使用してこのようなアクセス許可を付与できるため、知識のある人はこれをサードパーティ アプリケーションに対しても手動で設定できる可能性があります。