gpt4 book ai didi

ios - 什么是 iBeacon 蓝牙配置文件

转载 作者:IT王子 更新时间:2023-10-29 07:26:56 25 4
gpt4 key购买 nike

我想用一些低功耗蓝牙开发套件创建我自己的 iBeacon。 Apple 尚未发布 iBeacon 规范,但是,一些硬件开发人员已经从 AirLocate 示例代码对 iBeacon 进行了逆向工程,并开始销售 iBeacon 开发套件。

那么什么是 iBeacon 蓝牙配置文件?

低功耗蓝牙使用 GATT 进行 LE 配置文件服务发现。所以我认为我们需要知道 iBeacon 属性的属性句柄、属性类型、属性值,也许还有属性权限。那么对于 UUID 为 E2C56DB5-DFFB-48D2-B060-D0F5A71096E0 的 iBeacon,主要值为 1,次要值为 1,蓝牙 GATT 配置文件服务是什么?

以下是我根据 Apple 论坛上的讨论和文档做出的一些假设。

  1. 您只需查看蓝牙外围设备的配置文件服务 (GATT) 即可知道它是 iBeacon。

  2. 主要 key 和次要 key 在此配置文件服务中的某处进行了编码

一些拥有 iBeacon 开发工具包的公司似乎已经知道了这个数字:

希望我们能及时在 Bluetooth.org 上发布这样的配置文件:https://www.bluetooth.org/en-us/specification/adopted-specifications

最佳答案

对于具有 ProximityUUID E2C56DB5-DFFB-48D2-B060-D0F5A71096E0、major 0、minor 0 和校准 Tx Power 的 iBeacon -59 RSSI,传输的 BLE 广告包如下所示:

d6 是 89 8e 40 24 05 a2 17 6e 3d 71 02 01 1a 1a ff 4c 00 02 15 e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 00 00 00 00 c5 52 ab 8d 38 a5

这个数据包可以分解如下:

d6 be 89 8e # Access address for advertising data (this is always the same fixed value)
40 # Advertising Channel PDU Header byte 0. Contains: (type = 0), (tx add = 1), (rx add = 0)
24 # Advertising Channel PDU Header byte 1. Contains: (length = total bytes of the advertising payload + 6 bytes for the BLE mac address.)
05 a2 17 6e 3d 71 # Bluetooth Mac address (note this is a spoofed address)
02 01 1a 1a ff 4c 00 02 15 e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 00 00 00 00 c5 # Bluetooth advertisement
52 ab 8d 38 a5 # checksum

该数据包的关键部分是蓝牙广告,可以这样分解:

02 # Number of bytes that follow in first AD structure
01 # Flags AD type
1A # Flags value 0x1A = 000011010
bit 0 (OFF) LE Limited Discoverable Mode
bit 1 (ON) LE General Discoverable Mode
bit 2 (OFF) BR/EDR Not Supported
bit 3 (ON) Simultaneous LE and BR/EDR to Same Device Capable (controller)
bit 4 (ON) Simultaneous LE and BR/EDR to Same Device Capable (Host)
1A # Number of bytes that follow in second (and last) AD structure
FF # Manufacturer specific data AD type
4C 00 # Company identifier code (0x004C == Apple)
02 # Byte 0 of iBeacon advertisement indicator
15 # Byte 1 of iBeacon advertisement indicator
e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 # iBeacon proximity uuid
00 00 # major
00 00 # minor
c5 # The 2's complement of the calibrated Tx Power

任何可以配置为发送特定广告的蓝牙 LE 设备都可以生成上述数据包。我已经使用 Bluez 配置了一台 Linux 计算机来发送此广告,运行 Apple 的 AirLocate 测试代码的 iOS7 设备将其作为具有上述指定字段的 iBeacon 接收。请参阅:Use BlueZ Stack As A Peripheral (Advertiser)

blog包含有关逆向工程过程的完整详细信息。

关于ios - 什么是 iBeacon 蓝牙配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18906988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com