Java 是否通过蓝牙同时发送音乐和其他数据?

Java 是否通过蓝牙同时发送音乐和其他数据?,java,android,bluetooth,Java,Android,Bluetooth,场景: 我和我的朋友正在开发一种带有蓝牙接收器的产品,该接收器连接到扬声器系统。目前,我们可以与此设备配对,并通过蓝牙连接播放音乐。我想开发一个应用程序,在播放音乐时,我可以用它来控制我们设备上的不同设置。我的应用程序需要能够做到这一点,无论哪个应用程序正在通过蓝牙传输音乐(本机媒体播放器、spotify、pandora等)。我认为这可能是一个权限问题,而不是带宽问题 我需要知道: 是否可以同时向同一个蓝牙接收器发送控制数据和音频流?如果是这样的话,有人能指出一个好的策略来帮助我实现这一点吗(例

场景:

我和我的朋友正在开发一种带有蓝牙接收器的产品,该接收器连接到扬声器系统。目前,我们可以与此设备配对,并通过蓝牙连接播放音乐。我想开发一个应用程序,在播放音乐时,我可以用它来控制我们设备上的不同设置。我的应用程序需要能够做到这一点,无论哪个应用程序正在通过蓝牙传输音乐(本机媒体播放器、spotify、pandora等)。我认为这可能是一个权限问题,而不是带宽问题

我需要知道:

是否可以同时向同一个蓝牙接收器发送控制数据和音频流?如果是这样的话,有人能指出一个好的策略来帮助我实现这一点吗(例如控制数据使用什么协议)?如果不可能,有人能推荐一种更好的方法来控制目标设备吗

我在Android开发者文档中找不到我想要的东西。

根据我使用蓝牙的知识,最好的方法是将控制数据包发送到与音频数据包相同的数据包流中,并附加一个唯一的ID,让演讲者能够识别控制数据包并对其采取行动

理想情况下,您希望扬声器上的连接流仅用于控制。这样,你的应用程序就可以连接到它并发送连接数据,然后由说话者解释

演讲者的伪代码看起来像

connectionURL = "btspp://localhost: " + uuid + ";name=control";
bluetoothConnection.open(url);

while (true) {
   // waits on this line until something tries to connect to it.
   bluetoothConnection.acceptAndOpen();

   /* Process control information */
}

至于暂停来自第三方应用程序的音乐,最简单的方法是让应用程序暂停并释放音乐以继续。或者,您也可以发送一个控制数据包来取消蓝牙音频流,但恢复起来可能会非常复杂。

非常感谢!我相信这正是我想要的。在选择答案之前,我会让问题静置一夜,这样我可以收集更多的信息。明天我会选择一个答案。再次感谢!