लक्ष्य अंततः हेडसेट से प्रसारण, साथ ही ब्लूटूथ रोकना, मीडियाप्लेयर के परिवर्तन करने के लिए हेडसेट से प्राप्त क्लिक के विभिन्न प्रकार का जवाब है। यह समाधान आईसीएस से पहले सभी संस्करणों के लिए ठीक काम करता है।MediaButtonIntentReceiver एंड्रॉयड में काम नहीं कर 4.0+
((AudioManager)getSystemService(AUDIO_SERVICE)).registerMediaButtonEventReceiver(new ComponentName(this, MediaButtonIntentReceiver.class));
मैं भी करने की कोशिश की:
....
private BroadcastReceiver mediaButtonReceiver = new MediaButtonIntentReceiver();
....
public void onCreate() {
...
IntentFilter mediaFilter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
mediaFilter.setPriority(2147483647); // this is bad...I know
this.registerReceiver(mediaButtonReceiver, mediaFilter);
...
}
public class MediaButtonIntentReceiver extends BroadcastReceiver {
private KeyEvent event;
public MediaButtonIntentReceiver() {
super();
}
@Override
public void onReceive(Context context, Intent intent) {
String intentAction = intent.getAction();
if (!Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) {
return;
}
event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event == null) {
return;
}
try {
int action = event.getAction();
switch(action) {
case KeyEvent.ACTION_UP :
Log.d("TEST", "BUTTON UP");
break;
case KeyEvent.ACTION_DOWN :
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE :
Log.d("TEST", "BUTTON DOWN");
break;
}
} catch (Exception e) {
Log.d("TEST", "THIS IS NOT GOOD");
}
abortBroadcast();
}
}
, यह काम करने के लिए प्रयास करने के लिए यह 4.0+ की तरह लगता है यह जो काम नहीं किया की तरह कुछ करने की आवश्यकता है: यहाँ कोड और चीजों को मैं कोशिश की है में से कुछ है इसे उपरोक्त के अलावा, मेनिफेस्ट में जोड़ें:
<receiver android:name=".MediaButtonIntentReceiver" android:enabled="true">
<intent-filter android:priority="2147483647" >
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
अभी भी कोई भाग्य नहीं है। मुझे यहां क्या समझ नहीं आ रहा है? यह निश्चित रूप से एक 4.0 +/आईसीएस/जेलीबीन मुद्दा है ... यह एक सेवा में किया जा रहा है, गतिविधि नहीं।
मुझे एंड्रॉइड कोर में यह कारण भी मिला, लेकिन इसके आसपास होने का कोई समाधान नहीं: http://code.google.com/p/media-button-router/issues/detail?id=10#c4 – Du3