私は、ヘッドフォンボタンを押してから、何回押したかによって何か違うことをするプログラムを書いています。 APIレベル21に行く。Android 5.0。 ボタンを押すことはできますが、mp3プレーヤーを起動するとボタンが押され始めます。どうすればそれを防ぐことができますか? 2番目の質問は、一時停止したmp3、そのプログラムと私のプログラムでmp3を再生していないプログラムを再開しますか?メディアキーイベントに耳を傾けるためにヘッドフォンボタンコントロールAndroid 5.0
audioSession = new MediaSession(getApplicationContext(), "TAG11");
MsCallback= new MediaSession.Callback() {
@Override
public boolean onMediaButtonEvent(final Intent mediaButtonIntent) {
String intentAction = mediaButtonIntent.getAction();
Log.i("onMediaButtonEvent", intentAction);
if (Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) {
KeyEvent event = mediaButtonIntent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event != null) {
if(toast!=null){
toast.cancel();
}
toast = Toast.makeText(getApplicationContext(), "headsetbutton press", Toast.LENGTH_SHORT);
toast.show();
}
}
return super.onMediaButtonEvent(mediaButtonIntent);
}
};
audioSession.setCallback(MsCallback);
PlaybackState state = new PlaybackState.Builder()
.setActions(PlaybackState.ACTION_PLAY_PAUSE)
.setState(PlaybackState.STATE_PLAYING, 0, 0, 0)
.build();
audioSession.setPlaybackState(state);
audioSession.setFlags(MediaSession.FLAG_HANDLES_MEDIA_BUTTONS | MediaSession.FLAG_HANDLES_TRANSPORT_CONTROLS);
audioSession.setActive(true);
おそらく他のプログラムがボタンにリスナーを置くのをブロックすることはできません。おそらく新しいリスナーを聞くことができ、それを添付して削除することもできますが、それが可能なのかどうかはわかりません。 Idkはボタンをハイジャックしても良いアイデアです。音楽に使用しているユーザーをチェックしてください。 – Carcigenicate
応答のためのThx。トリックは、あなたがそれをrehookする必要があるかもしれません。しかし、どうやってそれが盗まれたのを発見しますか?ユーザーはボタンが何をするかを設定して、音楽を再生するように設定し、その後音楽を再生することができます。それはちょっとこのプログラムのようですが、はるかに多くのオプションを作りたいと思っています。 https://play.google.com/store/apps/details?id=com.kober.headset&hl=en – user2773829
リスナーの変更可能なリストを取得する方法はありますか?単にそれを直接操作することができます。 – Carcigenicate