自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 1788

原创 Android 9.0 HOGP 配对流程优化

在Android Pie的系统中,HOGP设备(基于BLE的HID设备)的配对流程和以往的Android版本一样,从扫描到设备,到物理层建立连接,再到生成秘钥、服务搜索、HOGP profile连接,最终设备可以使用,这一套流程并没有什么改变。它是一套通用的逻辑,先建立物理连接,接着生成秘钥(以便后续profile连接时会用到),再以最小的BLE connection interval(7.5ms...

2019-05-11 17:29:20 2694 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 3256 1

原创 Android蓝牙代码学习——内存分配

从棉花糖开始,Android的蓝牙native代码就开始发生变化,更多的用面向对象的C++来设计。到了奥利奥,代码中还使用了一些相对新一些的技术,同时提供了一些基本的工具。今天先从内存分配开始,学习其中用到的一些技术。内存分配与释放的接口在整个蓝牙的native代码中,动态的内存分配使用了osi_malloc、osi_calloc接口,释放则是osi_free。以osi_malloc为...

2018-08-25 16:04:53 875

原创 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 1774

原创 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 3933 3

原创 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 7142 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 3057

原创 sniff mode及其参数的解释

介绍了bluetooth中sniff mode的基本原理

2015-02-15 18:25:25 14425 1

原创 为什么不回连——被disconnect的蓝牙HOGP Device

为什么不回连——被disconnect的蓝牙HOGP Device为什么device那边产生了disconnect,master这边就允许其回连;而master这边将device disconnect掉,device就不能回连了呢?今天我们来看看,master在disconnect的过程中到底做了些什么。

2015-01-19 21:48:49 4623 1

原创 Android4.4 BLE HOGP 设备回连

Android4.4 环境下 BLE HOGP设备的自动回连本博文简单介绍了蓝牙BLE HOGP 设备的回连过程,包括回连前的处理和HOGP disconnect后的动作。

2015-01-16 22:43:39 6230

原创 java基础学习——try&catch与nextInt

刚开始学java,要独立写一个极小的程序都会问题不断。今天就来一个,说:

2014-10-28 23:51:25 1578

原创 bluetooth LE HOGP profile的代码大致实现流程(HOGP+GATT)

之前一段时间学习了HOGP profile。Specification写得很简单,主要是说明它的

2014-10-19 20:20:41 25013 2

原创 Bluetooth LE SMP的简单流程

正如SPEC所言,安全管理协议()

2014-10-12 00:56:33 7908

原创 bluedroid中的start discovery代码流程

之前看到csdn上balmy的博客——

2014-09-21 15:40:54 4332

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除