在CBPeripheralManager文档中,startAdvertising方法接收包含您想要宣传的数据的字典。根据文档,在字典参数中,CBAdvertisementDataLocalNameKey和CBAdvertisementDataServiceUUIDsKey.只接受两个可能的键。
然而,在苹果的将iOS设备转换为iBeacon文档中,它们表明您可以传递从CLBeaconRegion的peripheralData方法返回的字典。从该方法返回的字典包含一个键值对,密钥名为proximityUUID,值为proximityUUID、主要、次要和信标标识符。
从peripheralData方法返回的字典的转储显示在这里:字典转储
我的问题是:如果PeripheralManager.startAdvertisement方法支持的唯一键是CBAdvertisementDataLocalNameKey和CBAdvertisementDataServiceUUIDsKey,那么它如何接收具有"kCBAdvDataAppleBeaconKey“键的字典,并且仍然没有错误地进行广播?
发布于 2018-11-30 23:52:36
最简单也是最可能的解释是,关于CBPeripheralManager.startAdvertising只接受这两个键的文档是不准确的。在iBeacon支持发布后,文档可能从未更新过。
在相关的说明中,我怀疑(但不能确认)该方法支持更多的密钥作为私有API。您必须对框架二进制文件进行反编译,才能确定这些二进制文件是什么。
事实上,文档与添加到API中的新特性不同步是非常常见的,更常见的是文档更常见,更不用说不受公开支持的秘密行为。
https://stackoverflow.com/questions/53565987
复制相似问题