未执行 android broadcastreceviver onreceive 操作

标签 android button action media broadcastreceiver

我想创建一个广播接收器来监听 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/

相关文章:

android - 单击按钮时我的 toast 不起作用,它强制关闭并重新启动主要 Activity

android - 菜单项未显示在操作栏上

javascript - 调用 javascript 函数的 CSS 按钮

python - chromedriver 版本 >74 时出现 MoveTargetOutOfBoundsException 问题

c# - 使用使用 int 参数调用的 Action 初始化任务

android - ListView 重复 Android

Android - 没有发现重力正确的抽屉 View

css - jQuery 移动按钮拉伸(stretch)太远

java - Android Intent 按钮 NullPointerException

c# - 现有类方法的前后操作