Android:无法注册BroadcastReceiver

时间:2012-06-06 15:06:16

标签: android

我正在尝试使用java而不是清单来注册接收器,因为当我的应用程序关闭时我不需要这个接收器工作。

如果我使用清单我的接收器工作正常:

 <receiver android:name=".services.PlayerService$RemoteControlReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.MEDIA_BUTTON" />
        </intent-filter>
    </receiver>

如果我在没有清单的活动中注册它,这根本不起作用:

IntentFilter filter = new IntentFilter();
    {
        filter.addAction("android.intent.action.MEDIA_BUTTON");
    }

    registerReceiver(RemoteControlReceiver, filter);

我不需要使用清单,因为我只想在我的应用程序打开时控制耳机按钮。

1 个答案:

答案 0 :(得分:2)

使用Intent.ACTION_MEDIA_BUTTON代替android.intent.action.MEDIA_BUTTON;

IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);    
filter.setPriority(10000);    
registerReceiver(RemoteControlReceiver, filter);