重複の可能性:
バックグラウンドサービスで音量ボタンを聞きますか?
画面がロックされ、ディスプレイの電源がオフの状態でも、アプリケーションの音量キーの変更を聞きたい。サービスが常に実行されている(ウェイクロックの助けを借りて)が、私のアプローチでは音量の変化しか読み取れないという主な問題。
(画面がロックされ、表示がオフになっている場合でも)常時実行されているサービスを使用すると、問題が発生します。それはこの投稿の助けを借りて音量変更のための放送受信機を持っています。
public BroadcastReceiver MediaButton_Receiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event == null) {
return;
}
int action = event.getAction();
if (action == KeyEvent.KEYCODE_VOLUME_DOWN) {
Log.d(TAG,"VOLUME_DOWN Pressed");
}
};
};
event
サービスでは常にnullです。音量が変更されたときにのみ呼び出します。また、画面がオフの場合、BroadcastReceiverは機能しません。
それを行う別の方法は、それをオーバーライドするアクティビティを使用することですdispatchKeyEvent()
が、私のアクティビティは少ししか実行されません。ウェイクロックを試しましたが、役に立ちませんでした。そして、それがロックされた画面で動作するかどうかはまだわかりません。インターネットで検索しましたが、答えが見つかりません。
画面がロックされてオフになっている場合でも、音量ボタンを押すのをキャッチするアクティビティを作成できますか?それとも私はどういうわけかサービスでそれを行うことができますか?