CBPeripheral名称未更新

时间:2014-10-08 22:09:36

标签: ios xcode bluetooth

我有一个能够更新其广告名称的蓝牙设备。然后我使用此代码在我的应用程序中读取新名称:

NSString *localName = [advertisementData objectForKey:CBAdvertisementDataLocalNameKey];

当我这样做时,变量localName则包含更新的名称。但是当调用此函数时:

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI

peripheral.name保留旧名称。我尝试了几个方法来获取新名称(例如我尝试重置蓝牙设备,重置我的iPad,卸载/重新安装我的应用程序),但这些都没有奏效。在我独自离开几个小时后,我回来了peripheral.name最后更新,以反映localName中的价值。

我想也许有一种方法可以让蓝牙设备宣传一个名字然后再报告,但我发现了一个让我确信问题出在iOS应用程序中的情景。蓝牙设备广告为"名称A"。我用iPod和iPad发现了这个设备。这两种设备都看到了#34;名称A"。我将设备的名称更新为"名称B"。我用我的iPod发现了这个设备,它仍然将设备报告为"名称A"。一段时间后,它最终更新为"名称B"。我将设备的名称更改为"名称C"。 iPod正在报道"名称B"并且iPad仍在报告"名称A"。

有没有人见过这个问题?有没有办法刷新CBPeripheral.name值?

(编辑:我刚刚注意到iPad开始报告"名称C"我第一次连接到设备后。有没有办法在连接之前更新名称?)

0 个答案:

没有答案