4

我正在尝试将运行 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)

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

任何有关如何连接到 a2dp 设备的帮助将不胜感激。谢谢。

4

1 回答 1

2

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

于 2012-09-22T15:41:26.797 回答