CoreBluetooth中不允许使用广告密钥"Manufacturer Data"

V-X*_*eme 10 iphone objective-c ios core-bluetooth

我正在使用核心蓝牙框架.我正在尝试使用此框架创建外围设备.我的外围设备使用以下方

manager=[[CBPeripheralManager alloc]initWithDelegate:self queue:nil];
[manager startAdvertising:dictionary];
Run Code Online (Sandbox Code Playgroud)

这里我传给广告的字典是:

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:
                                    @"name", CBAdvertisementDataLocalNameKey,@"some other data",CBAdvertisementDataManufacturerDataKey,nil];
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,我收到警告:CoreBluetooth中不允许使用广告密钥"Manufacturer Data"

而且我没有得到我CBAdvertisementDataManufacturerDataKey在中心侧使用密钥发送的"其他数据" .我得到了中心的名字.那么如何将一些其他数据与广告数据一起发送?

rus*_*hop 11

正如startAdvertising上的CBPeripheralManager文档所述:

包含要宣传的数据的可选字典.在CBCentralManagerDelegate协议参考中详细说明了advertisementData字典的可能键.也就是说,外围管理器对象只支持其中两个键:CBAdvertisementDataLocalNameKey和CBAdvertisementDataServiceUUIDsKey.

这些密钥仅适用于iOS设备处于中央模式且正在发现外部设备(即只读)的情况.在外围模式下运行时,我不知道为什么会出现这种限制,您可能会尝试在其上提交错误报告.

  • 它们处于外围模式,因为设备是 Apple iPhone,而不是您的应用程序想要的。所以所有制造商的东西都是苹果的数据,所有设备的东西都是 iPhone。您可以修改的是设备名称,并指定您的应用程序提供的服务(然后 iOS 可以将这些服务与其他应用程序提供的服务结合起来)。 (2认同)