- 博客(15)
- 收藏
- 关注
原创 Bluetooth Low Energy: Data Length Extension
从core spec v4.2开始,低功耗蓝牙(Bluetooth Low Energy,以下简称BLE)支持链路层数据包PDU长度的管理。链路的两端可以互相协商,通过链路控制过程“Data Length Extension Procedure”实现数据包中payload长度的更新,使用更合适的(通常是比默认值更长的)数据包长度。本文简单介绍其基本原理,顺带提供一些数据比对,以及core spec...
2019-08-11 11:45:11
2122
原创 Android 9.0 HOGP 配对流程优化
在Android Pie的系统中,HOGP设备(基于BLE的HID设备)的配对流程和以往的Android版本一样,从扫描到设备,到物理层建立连接,再到生成秘钥、服务搜索、HOGP profile连接,最终设备可以使用,这一套流程并没有什么改变。它是一套通用的逻辑,先建立物理连接,接着生成秘钥(以便后续profile连接时会用到),再以最小的BLE connection interval(7.5ms...
2019-05-11 17:29:20
2899
2
原创 Mesh Provisioning:从unprovisioned device到mesh node(一)
Mesh Provisioning:从unprovisioned device到mesh node(一)将一个unprovisioned device加入到mesh network的过程被称为provisioning。要加入mesh,Provisioner需要将下述三个要素告知unprovisioned device:Network Key Network PDU使用Network Key进...
2018-10-21 22:39:24
3362
1
原创 Android蓝牙代码学习——内存分配
从棉花糖开始,Android的蓝牙native代码就开始发生变化,更多的用面向对象的C++来设计。到了奥利奥,代码中还使用了一些相对新一些的技术,同时提供了一些基本的工具。今天先从内存分配开始,学习其中用到的一些技术。内存分配与释放的接口在整个蓝牙的native代码中,动态的内存分配使用了osi_malloc、osi_calloc接口,释放则是osi_free。以osi_malloc为...
2018-08-25 16:04:53
970
原创 Oreo对A2DP codec的支持
除了使用HIDL来区分蓝牙的公共stack和vendor lib,Oreo对蓝牙A2DP的支持也更加全面。除了A2DP profile强制支持的SBC,Oreo新增了对AAC、APTX、LDAC的编码定义。具体是否支持,还得看实现。这里简单说明Oreo是如何做到支持多种编码,并选择合适的编码方式的。Java world的声明codec的支持是A2DP profile的声明的。在Blu...
2018-07-22 19:41:12
1886
1
原创 Android O 录制蓝牙HCI日志
在Android Oreo之前,要想在一个release版本的系统中录制蓝牙HCI log,可以通过打开“开发者选项->开启蓝牙HCI信息收集日志”选项。默认蓝牙的HCI log生成文件名为“bsnoop_hci.log”,位于“sdcard”目录。但是从Android Oreo开始,google做了一些调整,原有的路子已经走不通了。如何解决呢?答案是,自己实现一个录制蓝牙HCI l...
2018-07-15 16:27:42
4038
1
原创 Bluetooth GATT Profile Spec 解读
ATT(Attribute) protocol为所有基于LE link的应用提供了一个底层的框架。它定义了server与client,定义了属性以及client如何获取server端的一系列属性。Generic Attribute Profile作为一个通用的基于ATT的profile,为上层应用提供了一个基本的服务框架(service framework),使得所有基于LE的应用都可以将...
2018-04-24 00:00:56
7531
4
原创 Bluetooth Attribute Protocol Spec 解读
什么是Attribute protocol 简单来说,这个协议就是用来给Server和Client进行通信的协议。Server端保存有一个类似“属性数据库”的东西,包含了一系列的属性及其特性。而Client端可以通过ATT协议从Server端获取这些属性。再具体一些,Client可以查询(Discover)、读取(read)甚至配置(write)Server中保存的属性。通常是在配置之后,S...
2018-04-22 18:38:36
3233
1
原创 为什么不回连——被disconnect的蓝牙HOGP Device
为什么不回连——被disconnect的蓝牙HOGP Device为什么device那边产生了disconnect,master这边就允许其回连;而master这边将device disconnect掉,device就不能回连了呢?今天我们来看看,master在disconnect的过程中到底做了些什么。
2015-01-19 21:48:49
4842
原创 Android4.4 BLE HOGP 设备回连
Android4.4 环境下 BLE HOGP设备的自动回连本博文简单介绍了蓝牙BLE HOGP 设备的回连过程,包括回连前的处理和HOGP disconnect后的动作。
2015-01-16 22:43:39
6415
1
原创 bluetooth LE HOGP profile的代码大致实现流程(HOGP+GATT)
之前一段时间学习了HOGP profile。Specification写得很简单,主要是说明它的
2014-10-19 20:20:41
25722
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人