在Android中控制音乐播放器的音乐

时间:2019-07-21 15:03:42

标签: java android

我想在我的应用程序中对音乐控制器进行编程,这样我就可以播放/暂停,从另一个内置音乐应用程序跳到播放列表中的下一首歌曲或上一首歌曲。我已经看到了使用广播将消息发送到所有音乐播放器以开始播放音乐的解决方案。问题是,音乐开始在我安装的三个不同的音乐播放器上播放。是否有人知道用什么代替sendBroadcast,以便该消息仅发送到我想要的应用程序?

我在互联网上找到了以下解决方案。它使用sendBroadcast方法。该消息广播到我不需要的每个音乐播放器。我希望仅将其发送到一个特定的应用程序。

long eventTime = SystemClock.uptimeMillis();

/*NEXT*/
Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent downEvent = new KeyEvent(eventTime, eventTime, 
KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PREVIOUS, 0);
downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent);
sendBroadcast(downIntent, null);

Intent upIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent upEvent = new KeyEvent(eventTime, eventTime, 
KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PREVIOUS, 0);
upIntent.putExtra(Intent.EXTRA_KEY_EVENT, upEvent);
sendBroadcast(upIntent, null);

1 个答案:

答案 0 :(得分:0)

您不能仅将其发送到一个音乐播放器。广播是触发其他应用程序可以订阅的操作的系统事件。我非常确定,除非Android在播放音乐时强加您的声音,否则编写不订阅这些广播的音乐播放器很有可能(我不确定是否会这样做,但我认为不是)。因此,您甚至没有将其发送给所有人,而是将其发送给系统,任何订阅它的人都可以对它采取行动。

此应用程序的用例到底是什么?

与其他应用程序交互的另一种方法是隐式Intent。这样,您可以从其他应用程序调用视图并返回结果。这仅适用于该应用程序的开发人员允许的应用程序/视图。而且也不做您想要的。