蓝牙车载产品的兼容性设计
蓝牙车载产品的兼容性设计蓝牙车载产品的兼容性设计引言蓝牙技术问世10余年,得到了广泛应用,其中部分原因在于蓝牙SIG组织为各种应用以profile的形式定义了应用协议,这样蓝牙设备之间的互操作便有章可循,但即使如此,蓝牙设备之间的互操作性又称兼容性问题仍存在于几乎所有蓝牙应用中。笔者历时两年时间为某合资汽车厂商开发了一款蓝牙车载产品,实现了免提通话、双重呼叫管理、电话本自动下载与手动下载、流媒体音乐播放及远程控制功能,期间测试了近100部手机和音乐播放器,遇到并解决了各种兼容性问题。结合产品开发过程中测试并解决兼容性问题的经验,本文对兼容性问题出现的原因进行了分析,大致有以下三个方面的原因:具体应用本身定义不严格、应用上下文差异、引入协议带来的兼容性。以下就这三个方面进行详细分析并结合具体实例,说明其解决方法。应用定义不严格蓝牙SIG组织定义了Profile,对各种功能的实现方式做了规范,并且定义了必选功能和可选功能,设备厂商可以对可选项有选择得实现,这样便会造成一定的差异。而且Profile并没有对应用本身做严格定义,只是定义了功能,而应用是功能的集合体,Profile并没有定义怎么由多个功能组合实现某个应用,这样蓝牙设备厂商在实现某一应用时便有了差异性。双重呼叫是车载设备免提通话应用中兼容性最多的一种应用,下面分析下该应用出现兼容性问题的原因并举例剖析其解决方法。对于免提通话而言,比较重要的几个功能是呼叫建立提示CALL_SETUP、呼叫保持CALL_HELD、呼叫结果CALL、呼叫信息CLCC,手机在呼叫状态产生变化时实时向免提设备端传送这些提示消息,免提设备端便可以与手机的呼叫状态保持一致,在免提设备端控制呼叫才符合预期。其中CALL_SETUP和CALL是必选功能,但对于双重呼叫而言非常重要的CALL_HELD和CLC