I studied the ACTION_MEDIA_BUTTON
intent and Im trying to use it and intercept the button presses and present them on screen using a toast. I registered the receiver to intercept two intents:
ACTION_HEADSET_PLUG
- plugging the headsetACTION_MEDIA_BUTTON
- receiving the button presses
This is done in my main activity:
IntentFilter mediaFilter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
mediaFilter.setPriority(10000);
registerReceiver(_receiver, new IntentFilter(Intent.ACTION_HEADSET_PLUG));
registerReceiver(_receiver, mediaFilter);
This is the part of the receiver that handles the button presses:
if (action.equals(Intent.ACTION_HEADSET_PLUG))
{
Toast.makeText(context, "earphones activity",Toast.LENGTH_SHORT).show();
if (intent.getExtras().getInt("state")==1)//if plugged
Toast.makeText(context, "earphones plugged",Toast.LENGTH_LONG).show();
else Toast.makeText(context, "earphones un-plugged",Toast.LENGTH_LONG).show();
}
else
if (action.equals(Intent.ACTION_MEDIA_BUTTON))
{
Toast.makeText(context, "button pressed",Toast.LENGTH_LONG).show();
key=intent.getExtras().getString("EXTRA_KEY_EVENT");
Toast.makeText(context, key,Toast.LENGTH_LONG).show();
}
Now the part that handles the headset plug-in and removal works fine, but the part that intercept the button press isn't.
Is there any reason the code that handles the ACTION_MEDIA_BUTTON
doesn't work?
Is there a special permission I need to intercept such an intent?
I'm using a Samsung Galaxy S2 to test the code.
I've looked at all the similar posts and tried everything. Unfortunately nothing seems to work.