Android 蓝牙扫描、配对流程源码流程全分析
文章平均质量分 70
Android 蓝牙扫描、配对源码流程全分析,本专栏将使用多篇文章全面来分析源码流程,让蓝牙学习者更清楚的了解扫描、配对源码流程
知识分享小达人
本博客是全网最大分享安卓模块知识的博客,通过基础知识、安卓源码介绍、项目实践等方式,全面剖析手机各个模块的内容,使阅读者能够更好的理解,和应用到项目实践中,如果阅读过程中遇到不理解的,欢迎私信交流,本博主尽最大可能进行答疑解惑。
展开
-
android蓝牙连接过程分析(四.2)--配对流程
这个函数首先创建一个tBTM_SEC_DEV_REC结构体p_dev_rec,也就是安全管理设备记录表,将对端蓝牙设备加入到这个record记录中,并且保存获取到的远端设备的名字到p_dev_rec的sec_bd_name这个成员中,同时将p_dev_rec的标志位设置为BTM_SEC_NAME_KNOWN。btm_sec_execute_procedure这个函数表示我们连接流程的第八,九步,表示以后需要做的事情,因为我们现在还在第六步授权阶段,即将要做的是授权。原创 2024-01-28 17:39:18 · 643 阅读 · 0 评论 -
android蓝牙连接过程分析(四.1)--配对流程
在bta_dm_bond函数中,因为我们还不能确定绑定连接的设备是classic设备还是ble设备,这里的transport还是unknown,调用BTM_SecBond函数执行,也就是安全绑定,在这个函数最下面,最后调用了bta_dm_cb.p_sec_cback这个回调函数,这个回调我们前面也已经说股,就是bte_dm_evt函数,并且传入了BTA_DM_AUTH_CMPL_EVT事件,也就是认证完成后,调用bte_dm_evt函数处理。原创 2024-01-28 17:30:17 · 553 阅读 · 0 评论 -
android蓝牙连接过程分析(三)--btm_cb.api回调函数的赋值
bta_security结构体的p_sp_callback变量赋值为bta_dm_sp_cback,所以btm_cb.api.p_sp_callback = bta_dm_sp_cback,至此,完成了回调函数的赋值。还是来到我们的bta_dm_sys_hw_cback函数中,在这里调调用BTM_SecRegister函数来注册secure service服务,在这里面传入的是&bta_security结构体。原创 2024-01-28 17:08:28 · 161 阅读 · 0 评论 -
android蓝牙连接过程分析(二)--连接流程详解
一般情况下,当远端蓝牙设备接受连接请求后,这时候双方就需要交换特性了,我们知道蓝牙的频段是2402~2480MHZ,以1M为间隔,分为79个频道,蓝牙和wifi的频段是重合的,所以蓝牙采用自适应跳频技术,当有一个频段阻塞时,它会经过计算,自动跳到下一个频段,所以这里双方设备交换特性,始终保持频率等一致,为后面数据交换做准备。在蓝牙核心文档中,蓝牙的连接流程分为9个步骤,如右图所示,在这9个步骤中,实线的步骤是必选的,虚线是可选的,接下俩我们就来分析下。原创 2024-01-28 12:38:00 · 955 阅读 · 0 评论