蓝牙协议分为四层:架构
蓝牙有两种物理链路:ACL(AsynchronousConnectionless),和另外一种链路是SCO(Synchronous Connection Oriented)。SCO主要用于同步话音传送,ACL主要用于分组数据传送。less
Android上的蓝牙协议栈Bluez架构以下:dom
wince上模块划分:blog
BTAVService同步
AVRCPModule A2DPModuleio
BTDInterfservice音频
AVCTP AVDTP搜索
L2CAPplugin
HCIservice
Auto项目模块划分:
Feature Area:Phone(plugin+HMI)
sub-domains
链接: 全部HFP链接相关逻辑,包括自动链接,手动链接,断开链接,重连(不包括A2DP,PBAP,MAP等)。
电话:全部电话相关逻辑。包括来电,未接,通话记录,来电信息。走的HFP协议。
通信录:通信录下载,保存。走的OBEX和PBAP协议。
短消息:走到MAP协议。
BT stereo:音频流相关,包括音频链接,音频流播放控制。走的A2DP和AVRCP协议。
代码结构
HMI
phone Media
phonecore Mediacore
HFP
RFCOMM MAP PBAP OBEX A2DP AVRCP
L2Cap Paring
HCI
BB