ACTION_MEDIA_BUTTON ハンドラーを使用してアプリケーションを実行していますが、MX Player または Apollo によって常にインターセプトされているようで、インテントが得られません。
タグに1000と2147483647の両方の優先度を設定し、setPriorityを使用してコンストラクターの直後に試しました
MX Player または Apollo が存在しない場合にアプリケーションが動作する
また、Google Play の Headset Interceptor アプリを使用してみました。Autostarts アプリケーションを使用して MX Player へのイベントを拒否しようとしましたが、何も役に立ちません。
onCreateで:
IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
filter.addAction(Intent.ACTION_HEADSET_PLUG);
filter.setPriority(1000);
registerReceiver(receiver, filter);
受信機で
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
// NEVER REACHES HERE WHEN MX PLAYER PRESENT. WORKS IF NOT
マニフェストで
<receiver
android:name="BCreceiver"
android:enabled="true">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.MEDIA_BUTTON" />
<action android:name="android.intent.action.HEADSET_PLUG" />
</intent-filter>
</receiver>