我正在使用核心蓝牙框架。我正在尝试使用此框架创建外围设备。我的外围设备使用以下方式公布数据:
manager=[[CBPeripheralManager alloc]initWithDelegate:self queue:nil];
[manager startAdvertising:dictionary];
这里我传给广告的字典是:
NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:
@"name", CBAdvertisementDataLocalNameKey,@"some other data",CBAdvertisementDataManufacturerDataKey,nil];
当我运行应用程序时,我收到警告: CoreBluetooth中不允许使用广告键“制造商数据”
我没有收到我在中心侧使用密钥CBAdvertisementDataManufacturerDataKey
发送的“其他一些数据”。我得到了中心的名字。那么如何将一些其他数据与广告数据一起发送呢?
答案 0 :(得分:11)
有关startAdvertising的CBPeripheralManager文档声明:
包含您要宣传的数据的可选字典。在CBCentralManagerDelegate协议参考中详细说明了advertisementData字典的可能键。 也就是说,外围管理器对象只支持两个密钥:CBAdvertisementDataLocalNameKey和CBAdvertisementDataServiceUUIDsKey 。
这些密钥仅适用于iOS设备处于中央模式且正在发现外部设备(即只读)的情况。在外围模式下运行时,我不知道为什么会出现这种限制,您可能会尝试在其上提交错误报告。