转载请注明出处:http://blog.csdn.net/vnanyesheshou/article/details/71374935
本文已授权微信公众号 fanfan程序媛 独家发布 扫一扫文章底部的二维码或在微信搜索 fanfan程序媛 即可关注
接着上一篇hfp连接继续,查看蓝牙通话时如何进行处理的。hfp连接有两个连接,一个是hfp连接(在设置界面显示的是手机音频),另一个是蓝牙通话时进行的音频连接。这篇说下第二个连接,音频连接处理过程。
该文章是基于Android源码4.3的
1 连接音频 |
在手机音频正常连接时,接通电话,并选择蓝牙通话。从系统应用Phone开始分析。
代码路径:packages/apps/Phone/src/com/Android/phone/InCallScreen.Java
手机通话可以选择扬声器、听筒、蓝牙,我们选择蓝牙。
public void switchInCallAudio(InCallAudioMode newMode) {
switch (newMode) {
case SPEAKER: break; //扬声器
case BLUETOOTH: //蓝牙
// 检查hfp是否连接着(蓝牙耳机是否连接可用),检查蓝牙耳机的音频是否连接
if (isBluetoothAvailable() && !isBluetoothAudioConnected()) {
if (PhoneUtils.isSpeakerOn(this)) { //关闭扬声器
PhoneUtils.turnOnSpeaker(this, false, true);
}
connectBluetoothAudio(); //连接蓝牙音频
}
break;
case EARPIECE:break; //听筒
default: break;
}
updateInCallTouchUi(); //更新ui
}
蓝牙通话时选择蓝牙,会调到switchInCallAudio(),对于蓝牙通话模式,检查是否连接蓝牙耳机 headset(手机音频),检查蓝牙通话音频是否连接,如果有连接的蓝牙耳机,并且没有连接蓝牙音频(这个连接并不是设置界面中的手机音频连接,这是通话是需要的连接,该连接的前提是需要进行