美文网首页
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” 的

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