我写的版本4.0.3(ICS)Android操作系统的Android应用程序。 问题是,我没有收到从我在广播接收器的的onReceive()方法Log.d()的输出,这意味着我的应用程序不正确地处理广播。
我已阅读有关如何在被点击的ACTION_MEDIA_BUTTON运行代码无数的问题。 我甚至+粘贴代码复制时,我的没有工作,只是为了看看它是否会工作。
我要处理的ACTION_MEDIA_BUTTON是耳机,让用户以皮卡/结束通话,播放/暂停音乐的单一按钮。 而不是我的应用程序处理这个按钮,当我点击它,在我的歌Nexus S的Android股票的音乐播放器开始播放一首歌曲 。
我没有把我的代码在另一个类,也许这就是为什么它不工作?
下面是在onCreate()方法中的代码(我复制过我写的没有工作的代码后,网站这个特定的代码):
IntentFilter mediaButtonFilter = new IntentFilter(
Intent.ACTION_MEDIA_BUTTON);
mediaButtonFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
BroadcastReceiver brMediaButton = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
Log.d("Event", "Media button!");
this.abortBroadcast();
KeyEvent key = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if(key.getAction() == KeyEvent.ACTION_UP) {
int keycode = key.getKeyCode();
if(keycode == KeyEvent.KEYCODE_MEDIA_NEXT) {
Log.d("TestApp", "Next Pressed");
} else if(keycode == KeyEvent.KEYCODE_MEDIA_PREVIOUS) {
Log.d("TestApp", "Previous pressed");
} else if(keycode == KeyEvent.KEYCODE_HEADSETHOOK) {
Log.d("TestApp", "Head Set Hook pressed");
}
}
}
};
registerReceiver(brMediaButton, mediaButtonFilter);
我真正需要测试的是KEYCODE_HEADSETHOOK,但它不会伤害有其他代码有进行测试,我会解决它,一旦我能得到的一切工作正常。
在我的清单:
<intent-filter android:priority="2147483647" >
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
我原本以为这可能是一个权限问题,因为我这个,但是我没有收到任何错误消息没有指定任何权限。
就像我刚才所说,我已经尝试了很多这样的变化。 一个例子是,在这个环节中使用的代码的BroadcastReceiver的onReceive问题ACTION_MEDIA_BUTTON的Android与CommonsWare的更正。 然而,同样,我修改了它,所以它不是一个独立的类。
预先感谢您的帮助。