Android在蓝牙开发过程中,经常需要蓝牙成功连接后,控制像音箱,蓝牙灯之类的硬件。这时候,打开手机的蓝牙设置,常会看到电话音频和媒体音频,这两个是什么鬼?
从开发Android到现在,我感觉都是懵懵懂懂的,每天和硬件工程师在一起。只能说算是能开发Android app,至于这些协议总是啃了忘,忘了啃。下面说一下,我的理解。如果有不对的地方,烦请留言或者私信告诉我。
如上图中,一般电话音频是否支持要和嵌入式工程师确认。蓝牙芯片如果不支持电话音频,这里就不会显示出来了。
这里说一下电话音频的协议:HSP和HFP。
先看定义:
HSP(手机规格)– 提供手机(移动电话)与耳机之间通信所需的基本功能。
HFP(免提规格)– 在 HSP 的基础上增加了某些扩展功能,原来只用于从固定车载免提装置来控制移动电话。
这个网上的解释我觉得是最好理解的了。这里要重点说一下连接HSP的核心代码处理了。
public class Hfp {
public static final String TAG = "Hfp";
private BluetoothAdapter mBluetoothAdapter;
private BluetoothProfile hfpProfile;
private static Hfp INSTANCE;
private boolean enableHfp = false;
private Hfp() {
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
enableHfp = mBlue