2015-04-05 109 views
0

我有这个非常非常奇怪的问题与BLE。为不同的iDevice设置BLE(蓝牙)的不同名称?

我们有一些名为“x”的BLE硬件。 (很久以前)

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

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

这是怎么发生的?

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

回答

0

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

当在其他iPAD上尝试查找设备时,它会询问其他设备的名称。

现在,如果你再一次改变硬件的名称Z,旧的iPad会显示类似X,Y和新设备的名称将显示新的名称为Z. :)

解决方案能够>>尝试删除从iPAS上的配对设备列表中删除旧设备并再次找到它们。

0

看来iOS缓存了nameCBPeripheral。它通常不会刷新,直到iOS设备重新启动。 作为解决方法,您可以从CBAdvertisementDataLocalNameKeykey下的advertisementData字典中获取最近的名称。