我想创建一个广播接收器来监听 android.intent.action.MEDIA_BUTTON,并从中获取 extra_key_event 并采取相应的行动。不知何故不执行 onreceive 操作。
在我的 list 中:
receiver android:name="MediaButtonReceiver"
intent-filter
action android:name="android.intent.action.MEDIA_BUTTON"
intent-filter
接收者
在我的广播接收器中:
public class MVCS extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
/* 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();
}
}
}
但是,当我按下音量减小键时,没有任何显示。
如有任何帮助,我们将不胜感激!
最佳答案
您需要使用 registerReceiver() 方法在 Activity 中注册您的广播接收器。 由于您的代码在这里不完整,我无法确切地告诉您如何操作,但请记住,在实例化您的 MVCS 类之后,您应该像这样注册:
MyActivity.registerReceiver(myBroadcastReceiver, MediaButtonReceiver);
更好的方法是在 Activity 的 OnStart() 中注册接收器并在 OnStop() 中取消注册。
关于未执行 android broadcastreceviver onreceive 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7199314/