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

标签 java android

我想在我的应用程序中编写一个音乐 Controller ,这样我就可以从另一个内置音乐应用程序播放/暂停、跳到播放列表中的下一首歌曲或上一首歌曲。我见过一种使用广播向所有音乐播放器发送消息的解决方案,例如开始播放音乐。问题是,音乐开始在我安装的三个不同的音乐播放器上播放。有谁知道使用什么来代替 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);

最佳答案

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

这个应用程序的具体用途是什么?

与其他应用程序交互的另一种方式是隐式 Intent 。这样您就可以从其他应用程序调用 View 并获取结果。这仅适用于该应用程序开发人员允许的应用程序/ View 。并且也不做你想做的事。

关于java - 在Android中控制音乐播放器的音乐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57134392/

相关文章:

java - 在 OpenCV 中调整视频源的大小

java - 关于创建简单网络服务的建议

android - 如果我们必须设置 android :onClick either way? 为什么我们要实现 View.OnClickListener

android - 如何将数据从 Activity 传递到 BottomSheet fragment ?

java - 将地理编码任务任务逆向方法

java - 如何在枚举中调用附加方法?

java - Guava 事件总线 : don't catch RuntimeException

Java list.contains 返回 false,应该是 true

Android-从前置摄像头拍照会旋转照片

java - Settings gradle、property gradle 和 build gradle 之间的区别