我想从我的应用程序发送一个广播(或者它是一个意图?),如果正在播放,播放/暂停等,它将转到音乐播放器的下一曲目。这是我的代码到目前为止:
final Intent i = new Intent(Intent.ACTION_MEDIA_BUTTON);
i.putExtra(Intent.EXTRA_KEY_EVENT, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE);
context.sendBroadcast(i);
但是据我测试,我的测试代码片段并没有做任何事情。顺便说一下,我将此代码放入一个函数中,并在后台服务中调用它,以防相关。
那么我怎样才能使这个功能起作用?如果由于某种原因不可能,我愿意接受有关解决方案和/或替代解决方案的建议。
非常感谢,谢谢。
答案 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);