蓝牙通话机制原理

本文详细介绍了Android 6.0蓝牙通话的上层Java层机制,包括蓝牙通话框架、相关类的说明、类图及接听电话的流程图。主要关注BluetoothHeadsetClient及其相关服务,阐述了蓝牙通话服务的启动、跨进程通信和JNI调用流程。
摘要由CSDN通过智能技术生成

[摘要]: 本文主要论述基于android 6.0的蓝牙上层(Java层)通话机制;总结了蓝牙通话框架,并且给出了接听电话的详细的流程图;最后说明了apk的实现以及总结了蓝牙/android 相关的知识点。

1, 蓝牙框架

主要代码路径:

路径1: frameworks\base\core\java\android\bluetooth\  

蓝牙相关接口,蓝牙各种功能的发起点。

路径2:packages\apps\Bluetooth\src\com\android\bluetooth\  

独立的Bluetooth.apk,里面包含蓝牙相关的各种服务,是java层和C/C++层的桥梁。

路径3: packages\apps\Bluetooth\jni\

  调用底层C/C++实现各种蓝牙功能,并且反馈给java层。

在路径2里面还有各种相互独立的java代码包,每一个包都包含一个协议,实现一个具体的功能:

btservice: 统一管理,控制其他服务。

a2dp: 和蓝牙耳机,音频有关,比如听歌等。

avrcp: 音频/视频通过连接的蓝牙控制,比如放歌时控制暂停等。

gatt:低功耗BLE有关,比如蓝牙按键。

hdp: 蓝牙医疗有关

hfp和hfpclient : 蓝牙通话有关,比如蓝牙通话的相关操作

hid: 蓝牙键盘键盘/鼠标

map: 同步蓝牙短信相关

opp: 蓝牙传输,比如传输文件等

pan: 个人局域网

pbap: 同步电话本,比如联系人/通话记录等

sap : 蓝牙通话,主要和SIM卡相关

sdp: 蓝牙服务发现/获取相关

 

这12个包分别实现了12中蓝牙功能,大多数以服务的形式存在,运行在Bluetooth.apk中。不仅如此,还具有以下特点:

1,每一个服务相互

  • 4
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值