如何连接蓝牙a2dp设备?

时间:2012-09-22 09:21:22

标签: 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设备的任何帮助。感谢。

1 个答案:

答案 0 :(得分:2)

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