【问题标题】:Access data from SCO Socket从 SCO Socket 访问数据
【发布时间】:2014-02-25 01:27:33
【问题描述】:

我有 2 部 Android 手机,我已设法将其中一部转换为耳机(是的,我确实为此设置了手机)。 当电话收到来电时,耳机模拟电话能够采取与耳机相关的操作,例如 - 接听、断开呼叫等。但是,唯一缺少的功能是将音频从电话传输到耳机模拟 -设备。

有没有人有在 2 部安卓手机之间建立 SCO 连接和访问语音数据的经验? (到目前为止,我不关心音质)。

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

任何帮助或指点将不胜感激。

【问题讨论】:

    标签: android bluetooth android-bluetooth headset


    【解决方案1】:

    我已经通过反思做到了这一点。它只适用于某些设备。不是全部。虽然我没有root设备。

    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) 方法,您在播放音频时必须使用它们。

    【讨论】:

    • 感谢您的回复。我确实尝试过这种机制。但是打开 SCO 套接字并路由音频对我不起作用。你能告诉我哪些设备适合你吗?我使用 Galaxy Nexus 3(运行 4.1.1,因为它有旧的 BT 堆栈)。
    • 在 Nexus 7 上为我工作,但在 Nexus 4 或三星 Galaxy 2 上没有。所以我认为它可能在手机上不起作用。我不知道。
    • 这可能不适用于我的用例。我现在正在查看 GingerBread 中的 ScoSocket 实现。不过,此类在以后的版本中已被删除。感谢您的帮助。
    • 谢谢,这适用于我在 LG-P870 (Android 4.0.4) 上
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    相关资源
    最近更新 更多