美文网首页
iOS 与 BLE “HCI_EIR_datatype_t” 的

iOS 与 BLE “HCI_EIR_datatype_t” 的

作者: JasonFive | 来源:发表于2022-07-15 10:47 被阅读0次

对于iOS来说,蓝牙设备不能像 Android 那样,直接通过扫描adv就能拿到设备的mac地址,所以蓝牙设备就需要将自己的mac地址等信息放在adv广播中,以便让iOS去区分不同的设备;

有些开发者不知道怎么将这些信息存于adv广播包中,现在就将常用的贴出来,以便大家学习,有啥不对的,也请斧正

下面的枚举类型定义了常用的AD flags

/*eir packet_type*/
typedef enum {
    HCI_EIR_DATATYPE_FLAGS =                                                 0x01,
    HCI_EIR_DATATYPE_MORE_16BIT_SERVICE_UUIDS =                              0x02,
    HCI_EIR_DATATYPE_COMPLETE_16BIT_SERVICE_UUIDS =                          0x03,
    HCI_EIR_DATATYPE_MORE_32BIT_SERVICE_UUIDS =                              0x04,
    HCI_EIR_DATATYPE_COMPLETE_32BIT_SERVICE_UUIDS =                          0x05,
    HCI_EIR_DATATYPE_MORE_128BIT_SERVICE_UUIDS =                             0x06,
    HCI_EIR_DATATYPE_COMPLETE_128BIT_SERVICE_UUIDS =                         0x07,
    HCI_EIR_DATATYPE_SHORTENED_LOCAL_NAME =                                  0x08,
    HCI_EIR_DATATYPE_COMPLETE_LOCAL_NAME =                                   0x09,
    HCI_EIR_DATATYPE_TX_POWER_LEVEL =                                        0x0A,
    HCI_EIR_DATATYPE_CLASS_OF_DEVICE =                                       0x0D,
    HCI_EIR_DATATYPE_SIMPLE_PAIRING_HASH_C =                                 0x0E,
    HCI_EIR_DATATYPE_SIMPLE_PAIRING_RANDOMIZER_R =                           0x0F,
    HCI_EIR_DATATYPE_SECURITY_MANAGER_TK_VALUE =                             0x10,
    HCI_EIR_DATATYPE_SECURITY_MANAGER_OOB_FLAGS =                            0x11,
    HCI_EIR_DATATYPE_SLAVE_CONNECTION_INTERVAL_RANGE =                       0x12,
    HCI_EIR_DATATYPE_16BIT_SERVICE_SOLICITATION_UUIDS =                      0x14,
    HCI_EIR_DATATYPE_128BIT_SERVICE_SOLICITATION_UUIDS =                     0x15,
    HCI_EIR_DATATYPE_SERVICE_DATA =                                          0x16,
    HCI_EIR_DATATYPE_APPEARANCE_DATA =                                       0x19,
    HCI_EIR_DATATYPE_MANUFACTURER_SPECIFIC_DATA =                            0xFF
} HCI_EIR_datatype_t;

1、如果在广播中需要给设备添加一个过滤设备的UUID可以使用

HCI_EIR_DATATYPE_COMPLETE_128BIT_SERVICE_UUIDS = 0x07

2、给设备添加设备名

HCI_EIR_DATATYPE_COMPLETE_LOCAL_NAME = 0x09,

3、添加设备mac地址

HCI_EIR_DATATYPE_MANUFACTURER_SPECIFIC_DATA = 0xFF,

一般广播中添加这3个特征值就可以了,不要添加太多,因为广播有字节数限制,BLE的广播包由2个包组成,adv包(自定义广播包)和rsp包(广播扫描响应包),每个包31Byte,所以广播数据最多62Byte,都可以回复数据。

学习资料

相关文章

  • iOS 与 BLE “HCI_EIR_datatype_t” 的

    对于iOS来说,蓝牙设备不能像 Android 那样,直接通过扫描adv就能拿到设备的mac地址,所以蓝牙设备就需...

  • iOS BLE Scan

    iOS扫描BLE设备的方法 iOS在使用CoreBluetooth框架进行BLE开发时,通常作为中心设备(Mast...

  • (蓝牙低功耗)BLE

    BLE 此插件可实现手机与蓝牙低功耗(BLE)外设之间的通信。该插件为iOS和Android提供了一个简单的Jav...

  • iOS CoreBluetooth

    CoreBluetooth 在iOS和Mac应用中,CoreBluetooth框架用来与BLE(低功耗蓝牙)设备通...

  • Android BLE介绍和蓝牙协议的一些知识,很值得收藏

    其实BLE是个通用的技术术语,与平台无关的,即ios和Android以及一些嵌入式系统或单片机都可以有BLE模块。...

  • 12月第三周

    iOS-BLE蓝牙开发持续更新 - IOS - 伯乐在线 ReactiveCocoa 中 RACSignal 所有...

  • iOS-蓝牙开发Mark

    iOS蓝牙的开发专题[http://liuyanwei.jumppo.com/2015/07/17/ios-BLE...

  • CoreBluetooth

    iOS-BLE蓝牙开发持续更新 - 简书 蓝牙打印小票 一个第三方 IOS BLE4.0蓝牙和外设连接和收发数据的...

  • 蓝牙相关

    https://www.jianshu.com/p/03d617921aef IOS9 BLE 与外设交互及设备绑...

  • iOS开发之BLE(二)——外设连接与断开

    在 iOS开发之BLE(一)——理论知识 一文中,主要对iOS开发中BLE的基本理论知识进行了介绍,本文以中心模式...

网友评论

      本文标题:iOS 与 BLE “HCI_EIR_datatype_t” 的

      本文链接:https://www.haomeiwen.com/subject/gslfirtx.html