最近做蓝牙 突然发现 iOS 8.2 的 coreBlueTooth 在蓝牙广播包 中返回的 kCBAdvDataManufacturerData 数据 和 iOS 9 或者 iOS 10 返回的数据不一样 然后开始了探讨 :
以我的得到的 蓝牙广播数据为例
iOS 8.2 kCBAdvDataManufacturerData: <00605257 2d424c45>
iOS 9 10 :kCBAdvDataManufacturerData: <00016e63 6da05a5c 00a01400 6052572d 424c45>
我们看到 黑线部分是共同的部分 iOS 10 那个去掉黑线部分 ,前边的一串 是 设备厂商信息, 里面有设备 唯一标识 来判断你到底是手环 还是自家设备神马的, 还有设备Mac 地址(coreBluetooth 不直接把 你的设备mac 地址 直接暴露出来 , 而是 把你的设备的 Mac地址 和你 手机的Mac地址 以某种算法 得出来一串数字 :就是你的peripheral.identifier )当然 kCBAdvDataManufacturerData 里面的信息都可以让硬件工程师 添加