如何通过Android中的免提音频网关通过AG发起呼叫?

时间:2014-06-17 07:21:40

标签: android bluetooth android-bluetooth bluetooth-sco

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

   ///////////////////////////////////////////////////////////////////////////////         
           //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)设备发起呼叫,但我无法听到铃声或听到对方说话。

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

1 个答案:

答案 0 :(得分: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()。