到目前为止,我已经能够通过蓝牙连接从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)设备发起呼叫,但我无法听到铃声或听到对方说话。
看起来我到目前为止刚刚能够触发呼叫机制。如何建立音频连接,以便我也可以听到目标手机上的扬声器以及说话?
答案 0 :(得分:1)
您似乎正在尝试在电话上实施免提单元角色。 一种方法是,如果您有2部电话,电话A(表现为AG),电话B(免提单位),那么
电话B需要向电话A发送适当的AT命令,使其自身显示为蓝牙耳机。如果这样做是正确的,那么我不认为电话A需要进行任何更改以将音频路由到蓝牙SCO链接。要查看免提装置发送的AT命令,来自连接到标准蓝牙耳机的电话A(AG)的日志可能会有所帮助。或免提规格。
在电话B上,假设已经将所有AT命令发送到电话A以使其自身显示为HF单元,然后通过从电话B发送ATD来建立呼叫(电话A到远程方) ,手机A可以设置SCO,就像使用标准蓝牙耳机一样。 如果没有,那么电话B可能必须调用AudioManager.startBluetoothSco()来设置SCO。 除了正在设置SCO之外,电话B还必须将音频路由到SCO。我认为API是AudioManager.SetMode()和AudioManager.setBluetoothScoOn()。