0

到目前为止,我已经能够通过从加载我的应用程序的手机(HF 或免提)到目标手机的蓝牙连接,从 Android 手机 AG(音频网关)发起呼叫。我已将此代码用于此过程:

   ///////////////////////////////////////////////////////////////////////////////         
           //Here, how to establish voice connectivity from AG to my phone(HF)?
    //////////////////////////////////////////////////////////////////////////////        

        // Calling the target phone from the AG via the HF using bluetooth Handfree Audio Gateway
            try {
                mmOutStream.write(("ATD"+phone_number+"\r").getBytes());
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

现在,我可以从我的免提 (HF) 设备发起呼叫,但我无法听到铃声或听到其他人说话。

到目前为止,看起来我刚刚能够触发调用机制。如何建立音频连接,以便我也可以听到目标电话上的扬声器以及说话?

4

1 回答 1

1

您似乎正在尝试在电话上实现免提单元角色。这样做的一种方法是,如果您有 2 部电话,电话 A(表现为 AG),电话 B(免提单元)然后

  1. 手机 B 需要向手机 A 发送适当的 AT 命令,以使自己显示为蓝牙耳机。如果这样做正确,那么我认为电话 A 不需要任何更改即可将音频路由到蓝牙 SCO 链接。要查看免提单元发送了哪些 AT 命令,连接到标准蓝牙耳机的电话 A (AG) 的日志可能会有所帮助。或免提规范。

  2. 在电话 B 上,假设所有 AT 命令已发送到电话 A 以使其自身显示为 HF 单元,然后通过从电话 B 发送 ATD 来建立呼叫(电话 A 到远程方),电话 A 可以建立SCO 就像使用标准蓝牙耳机一样。如果没有,那么电话 B 可能必须调用 AudioManager.startBluetoothSco() 来设置 SCO。除了设置 SCO 之外,电话 B 还必须将音频路由到 SCO。我认为 API 是 AudioManager.SetMode() 和 AudioManager.setBluetoothScoOn()。

于 2014-06-19T21:55:09.227 回答