对于不同的iDevice,BLE(蓝牙)有不同的名称吗?

时间:2015-04-05 12:06:31

标签: ios bluetooth bluetooth-lowenergy core-bluetooth

我对BLE这个非常奇怪的问题。

我们有一些名为“x”的BLE硬件。 我们已将设备名称更改为“y”。(很久以前)

当我们在iPhone 6上运行应用程序时,我们会发现名称为“y”的设备应该是这样。

当我们在iPad上运行应用程序时,我们会发现名为“x”的设备!

这怎么可能发生?

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
    NSLog(@"%@",peripheral); //different names !

2 个答案:

答案 0 :(得分:0)

这是因为,旧设备上存储了相同的设备。当您尝试发现它时,iPad会从存储数据中获取名称,而不是从远程(其他设备)请求它来共享它。

当在另一个iPAD上,当它试图找到该设备时,它会从另一个设备请求该名称。

现在,如果您再次将硬件名称更改为Z,旧的iPADS将显示X,Y等名称。新设备将显示新名称为Z. :)

解决方案可以是>>尝试从iPAS上的配对设备列表中删除旧设备,然后重新找到它们。

答案 1 :(得分:0)

似乎iOS缓存name的{​​{1}}。在iOS设备重新启动之前,它通常不会刷新。 要解决此问题,您可以在CBPeripheral key下的advertisementData词典中获取最新名称。