ハードウェア ボタンの押下を傍受し、REST 呼び出しを行う Android アプリを開発しています。インターセプトする必要があるボタンはプッシュ ツー トーク (PTT) ボタンであるため、電源ボタンや音量ボタンなどの通常のボタンではありません。
アプリケーションがフォアグラウンドで実行されるときは、メソッド onKeyDown (int keyCode、KeyEvent イベント) を使用します。識別子としての PTT ボタンの番号は 27 で、メソッド内に次のコード行を記述しました。
if (keyCode == 27) {// PTT ボタンを押しました}
これはすべて完全に機能します。
しかし今、アプリケーションをバックグラウンドで送信し (moveTaskToBack(true); 関数を使用)、PTT ボタンを押すとアプリケーションをインターセプトします。
BroadcastReceiver、IntentFilter および Service については認識していますが、これらを使用すると、限られたインテント アクション (intent.action.SCREEN_OFF などの通常のアクション) を傍受できます。その中には、PTT ボタンの圧力を見つけることができないものがあります。
アプリケーションがバックグラウンドにあるときに PTT ボタンを傍受する方法はありますか?
ありがとうございました