我目前正在为应用程序的外围编程。我想宣传TX功率水平,但据TX文档我所发现的是:
CB_EXTERN NSString * const CBAdvertisementDataTxPowerLevelKey; // A NSNumber
我尝试通过以下方式实现此目的:
/** Start advertising
*/
- (IBAction)switchChanged:(id)sender
{
[self.peripheralManager startAdvertising:@{ CBAdvertisementDataServiceUUIDsKey : @[[CBUUID UUIDWithString:TRANSFER_SERVICE_UUID]] }];
[self.peripheralManager startAdvertising: CBAdvertisementDataTxPowerLevelKey];
}
@end
我在我的最后一行代码中不断收到警告:“将不兼容的指针类型发送'NSString *'到类型'NSDictionary *'的参数。我知道我的TxPowerLevelKey是NSString,但是NSDictionary指的是什么?
最佳答案
其他答案已经解决了字典的定义方式,但是,您正在寻找更高层次的问题。如何从iOS设备传输txPower级别。
答案是当前您还不能。修复代码后,它会编译并运行,但是CoreBluetooth只是忽略了该键。
如the documentation所述:
可选字典,其中包含要播发的数据。的
广告数据字典的可能关键字在
CBCentralManagerDelegate协议参考。 也就是说,只有两个
外围设备管理器对象支持这些键:
CBAdvertisementDataLocalNameKey和
CBAdvertisementDataServiceUUIDsKey。
希望有帮助