我想在我的应用程序中编程一个音乐控制器,这样我就可以播放/暂停,跳到播放列表中的下一首歌或从另一个内置音乐应用程序跳到上一首歌。我已经看到了一种使用广播向所有音乐播放器发送消息的解决方案,例如,开始播放音乐。问题是,音乐开始在我安装的三个不同的音乐播放器上播放。有没有人知道用什么来代替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);发布于 2019-07-21 23:31:48
您不能只将其发送到一个音乐播放器。广播是触发其他应用程序可以订阅的操作的系统事件。我非常确定编写一个不订阅这些广播的音乐播放器是非常有可能的,除非Android在播放音乐时强迫你这样做(我不确定它是否会这样做,但我认为不会)。所以,你甚至没有把它发送给每个人,你把它发送到系统,然后任何订阅它的人都可以对它采取行动。
这个应用程序的用法到底是什么?
另一种与其他应用程序交互的方式是隐式意图。这样你就可以从其他应用程序中调用视图并返回结果。这只适用于应用程序/视图,该应用程序的开发人员允许这样做。也不会做你想做的事。
https://stackoverflow.com/questions/57134392
复制相似问题