android broadcastreceviver onreceive action not performed
I wanted to create a broadcastreceiver which listens for android.intent.action.MEDIA_BUTTON, and get the extra_key_event from that and act accordingly. Somehow the onreceive action is not performed.
In my Manifest:
receiver android:name="MediaButtonReceiver"
intent-filter
action android:name="android.intent.action.MEDIA_BUTTON"
intent-filter
receiver
In my broadcastreceiver:
public class MVCS extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getA开发者_如何转开发ction())) {
/* handle media button intent here by reading contents */
/* of EXTRA_KEY_EVENT to know which key was pressed */
KeyEvent ke = (KeyEvent)intent.getExtras().get(Intent.EXTRA_KEY_EVENT);
if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) {
Toast.makeText(context, "BUTTON PRESSED!", Toast.LENGTH_SHORT).show();
}
}
}
However, nothing is displayed when i press the volume down key.
Any help would be much appreciated!
You need to register your broadcast receiver in your Activity, with method registerReceiver(). As your code is not complete here, I can't tell you exactly how, but bear in mind that after instantiate your MVCS class, you should register like:
MyActivity.registerReceiver( myBroadcastReceiver, MediaButtonReceiver);
Better way of doing this is to register your receiver in OnStart() of your activity and unregister it in OnStop().
精彩评论