android - 如何连接到蓝牙 a2dp 设备?

标签 android bluetooth a2dp

我正在尝试将运行 android 4.1 的 android 设备与支持 a2dp 的音频接收器配对。我可以在蓝牙设置屏幕上毫无问题地做到这一点,但我很难用代码做到这一点。

基本上我能够发现该设备,但我无法通过套接字连接到它。也许我使用了错误的 UUID 或者我应该使用预定义的 android.bluetooth.BluetoothA2dp 类。这是我正在做的:

UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
socket = device.createInsecureRfcommSocketToServiceRecord(uuid);
socket.connect();

但是我得到一个异常,说明它无法连接。

java.io.IOException: Service discovery failed
at android.bluetooth.BluetoothSocket$SdpHelper.doSdp(BluetoothSocket.java:403)
at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:213)

我也曾尝试使用设备通过 device.getUuids() 提供的 UUID 进行连接,但这些都无助于连接到 a2dp 设备。

如能提供有关如何连接到 a2dp 设备的任何帮助,我们将不胜感激。谢谢。

最佳答案

A2DP 不是通过 RFCOMM 完成的,因此您不能使用 createRfcommSocket API。数据直接通过具有指定协议(protocol) mux ID 的 L2CAP 流传输(一个用于控制,另一个用于流数据)。

关于android - 如何连接到蓝牙 a2dp 设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12542523/

相关文章:

android - 通过 USB 从一部安卓手机给另一部手机充电

android - 我们可以在 Android 中使用缩放手势检测器进行缩放吗?

android - 是否有一个好的网站可以跟踪您在 Android Market 上的排名?

android - 未找到 ListView 项目

c# - 连接到电脑上的蓝牙耳机

java - 不规则的蓝牙传输速度?

android - 如何在android模拟器中运行wifi点对点应用程序..?

ios - AVAudioSessionPortBluetoothHFP、A2DP、LE有什么区别?

bluetooth - 如何确定蓝牙设备通过 A2DP 支持哪些编解码器

audio - 如何让A2DP和HSP同时工作