我目前正在为应用程序的外围编程。我想宣传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。


希望有帮助

10-07 19:41
查看更多