从SCO Socket访问数据

时间:2014-02-14 13:03:53

标签: android bluetooth android-bluetooth headset

我有2部Android手机,我设法将其中一部分转换为耳机(是的,我确实为此手机设置了根电话)。 当手机收到来电时,耳机仿真手机可以采取耳机相关的操作,如拨打电话,断开呼叫等。但是,只有缺少的功能是将音频从手机传输到耳机模拟 - 设备。

有没有人有过在2个Android手机和访问语音数据之间建立SCO连接的经验? (截至目前,我并不关心音质)。

我遇到了A2DP,但它只是单向的。只有SCO才是双向语音数据传输。

任何帮助或指示都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

我用反射完成了这个。它只适用于某些设备。不是全部。虽然我没有使用设备。

Class cls = Class.forName("android.bluetooth.BluetoothDevice");
Method method = cls.getDeclaredMethod("createScoSocket", (Class[])null);  
BluetoothSocket scoSocket = (BluetoothSocket)method.invoke(device, null);  
scoSocket.connect();

还有AudioManager.startBluetoothSco()和AudioManager.setBluetoothScoOn(true)方法,您必须在播放音频时使用这些方法。