私はイヤホンからボタンのクリックを処理するためにこのコードを持っています。問題は私の優先順位が低く、ボタンをクリックするとラジオがオンになることです。私は自分のアプリに優先権を与えることができるようにしたい。私はsetPriorityの数を増やそうとしましたが、動作しません。 Responding to Media Buttons guideで説明したように、正しいメディアアプリに派遣するメディアフレームワークによって別々に処理されるようあなたがregisterReceiver
でIntent.ACTION_MEDIA_BUTTON
ための受信機を登録することはできません、他のクラスのイヤホンのボタンのクリックを処理する方法は?
public class MediaButtonIntentReceiver extends BroadcastReceiver {
public MediaButtonIntentReceiver() {
super();
}
@Override
public void onReceive(Context context, Intent intent) {
String intentAction = intent.getAction();
if (!Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) {
return;
}
KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event == null) {
return;
}
int action = event.getAction();
if (action == KeyEvent.ACTION_MULTIPLE) {
// do something
Toast.makeText(context, "BUTTON PRESSED!", Toast.LENGTH_SHORT).show();
}
abortBroadcast();
}
//コードは
IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);//"android.intent.action.MEDIA_BUTTON"
MediaButtonIntentReceiver r = new MediaButtonIntentReceiver();
filter.setPriority(1000); **//increasing this does not work**
registerReceiver(r, filter);
あなたは、バックグラウンドでのメディアのボタンを取得しようとしたり、アプリがフォアグラウンドである場合にのみされていますか?あなたは完全にメディアアプリを構築していますか? – ianhanniballake
私のアプリがフォアグランドにあるときのみ...ボタンをクリックすると私のアプリにトーストメッセージを送信する何かを構築しています – Jose