我成功地发现了一个外设,并检索其本地名称:
[advertisementData objectForKey:CBAdvertisementDataLocalNameKey]
但如果外围停止和重新启动一个不同的本地名广告客户不承认的变化。 我猜
- (void)peripheralDidUpdateName:(CBPeripheral *)peripheral
只有当两台设备配对工作。 有没有办法得到一个更新而不配对?
我成功地发现了一个外设,并检索其本地名称:
[advertisementData objectForKey:CBAdvertisementDataLocalNameKey]
但如果外围停止和重新启动一个不同的本地名广告客户不承认的变化。 我猜
- (void)peripheralDidUpdateName:(CBPeripheral *)peripheral
只有当两台设备配对工作。 有没有办法得到一个更新而不配对?
苹果的bug。 仍然存在于iOS的6.1。 这是使用方法如何重置CB缓存:
抱歉。
您可以在名称属性,它会甚至工作不连接时,至少这是在OS X 10.10的情况下,使用国际志愿者组织。 我只是用它来调用-peripheralDidUpdateName:通过跟踪名称字符串的方法自己,重复数据删除通话。
self.name = self.peripheral.name;
[self.peripheral addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew context:NULL];
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if([keyPath isEqualToString:@"name"]) {
[self peripheralDidUpdateName:self.peripheral];
return;
}
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
}
- (void)peripheralDidUpdateName:(CBPeripheral *)peripheral {
if([peripheral.name isEqualToString:self.name]) return;
if([self.delegate respondsToSelector:@selector(peripheralDidUpdateName:)]) {
[self.delegate peripheralDidUpdateName:self];
}
}