2011-06-15 80 views
5

我想从我的应用程序发送一个广播(或者它是一个意图?),如果正在播放某个音乐播放器或播放/暂停等,它将转到音乐播放器的下一个音轨。下面是我拥有的代码远:Android使用意图控制媒体播放器?

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

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

那么我怎样才能使这个功能工作?如果由于某种原因无法进行,我愿意接受有关解决方法和/或备用解决方案的建议。

非常感谢,谢谢。

+0

您是否接受目标应用程序的权限? – 2011-06-15 01:53:24

回答

7

您正在使用EXTRA_KEY_EVENT不当。请参阅Intent#EXTRA_KEY_EVENT。您需要用KEYCODE_MEDIA_PLAY_PAUSE键码实例化一个新的KeyEvent对象。只是传递键码的目的是传递它作为一个整数,而不是KeyEvent

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

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);