Android使用意图来控制媒体播放器?

时间:2011-06-15 01:49:59

标签: java android

我想从我的应用程序发送一个广播(或者它是一个意图?),如果正在播放,播放/暂停等,它将转到音乐播放器的下一曲目。这是我的代码到目前为止:

    final Intent i = new Intent(Intent.ACTION_MEDIA_BUTTON);
    i.putExtra(Intent.EXTRA_KEY_EVENT, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE);
    context.sendBroadcast(i); 

但是据我测试,我的测试代码片段并没有做任何事情。顺便说一下,我将此代码放入一个函数中,并在后台服务中调用它,以防相关。

那么我怎样才能使这个功能起作用?如果由于某种原因不可能,我愿意接受有关解决方案和/或替代解决方案的建议。

非常感谢,谢谢。

2 个答案:

答案 0 :(得分:7)

您未正确使用EXTRA_KEY_EVENT。见Intent#EXTRA_KEY_EVENT。您需要使用KeyEvent键代码实例化新的KEYCODE_MEDIA_PLAY_PAUSE对象。只是在意图中传递密钥代码就是将其作为整数传递,而不是KeyEvent

This thread显示了创建KeyEvent对象的示例。

答案 1 :(得分:4)

Intent i = new Intent(Intent.ACTION_MEDIA_BUTTON);
i.putExtra(Intent.EXTRA_KEY_EVENT,new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_NEXT));
sendOrderedBroadcast(i, null);

i = new Intent(Intent.ACTION_MEDIA_BUTTON);
i.putExtra(Intent.EXTRA_KEY_EVENT,new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_NEXT));
sendOrderedBroadcast(i, null);