我试图为Android编写一个音乐播放器作为学校的项目,我试图拦截我的蓝牙耳机的动作(Parrot Zik 2.0,如果重要的话)。
这是我目前的代码:
AndroidManifest.xml
:
<receiver android:name=".core.MediaButtonReceiver">
<intent-filter android:priority="100">
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
在我的班级MediaButtonReceiver
中我为测试目的写了以下内容(Groovy):
public class MediaButtonReceiver extends BroadcastReceiver
{
@Override
void onReceive(Context context, Intent intent)
{
def intentAction = intent.action
if(!Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) return
def event = intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT) as KeyEvent
if(event == null) return
def action = event.action
Log.e(this.class.toString(), "action : ${action}")
switch(action)
{
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
Log.e(this.class.toString(), "Play/pause")
abortBroadcast()
break
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
Log.e(this.class.toString(), "Previous")
abortBroadcast()
break
case KeyEvent.KEYCODE_MEDIA_NEXT:
Log.e(this.class.toString(), "Next")
abortBroadcast()
break
case KeyEvent.KEYCODE_VOLUME_UP:
Log.e(this.class.toString(), "Volume up")
abortBroadcast()
break
case KeyEvent.KEYCODE_VOLUME_DOWN:
Log.e(this.class.toString(), "Volume down")
abortBroadcast()
break
}
}
}
使用以下内容时:
E/class augier.fr.phoebius.core.MediaButtonReceiver﹕ 0
E/class augier.fr.phoebius.core.MediaButtonReceiver﹕ 1
所以看起来我确实抓到了一些东西,但看起来它只对应于按下按钮然后释放按钮时的事件,而且我无法将其与任何特定动作相匹配。
我可能错误地使用它,但到目前为止,我还没有找到解释如何在互联网上捕捉媒体相关事件的教程。
有什么想法吗?
答案 0 :(得分:1)
而不是
def action = event.keyCode
试试这个:
ActiveForm