Bluetooth 可编程外围设备显示不正确

Bluetooth 可编程外围设备显示不正确,bluetooth,bluetooth-lowenergy,core-bluetooth,ios-bluetooth,Bluetooth,Bluetooth Lowenergy,Core Bluetooth,Ios Bluetooth,我目前在连接外设时遇到一些问题。我们外设中的蓝牙模块最初似乎没有宣传名称。我发现,一旦我第一次连接到外围设备,它就会更新名称,然后我的扫描仪就能看到正确的名称 我不明白为什么会这样。我也尝试过使用我们正在开发的Swift应用程序,以及iOS和Android上的一系列蓝牙扫描仪,所以我不认为这是操作系统或扫描仪方面的编程错误 外设上是否有应设置的特定参数。由于我只是一名应用程序开发人员,我对模块如何处理流程没有太多了解 任何帮助都将不胜感激 只是为了确认扫描器在连接一次后才看到外设的名称。在此之后

我目前在连接外设时遇到一些问题。我们外设中的蓝牙模块最初似乎没有宣传名称。我发现,一旦我第一次连接到外围设备,它就会更新名称,然后我的扫描仪就能看到正确的名称

我不明白为什么会这样。我也尝试过使用我们正在开发的Swift应用程序,以及iOS和Android上的一系列蓝牙扫描仪,所以我不认为这是操作系统或扫描仪方面的编程错误

外设上是否有应设置的特定参数。由于我只是一名应用程序开发人员,我对模块如何处理流程没有太多了解

任何帮助都将不胜感激


只是为了确认扫描器在连接一次后才看到外设的名称。在此之后,它将开始显示名称。更改外围设备名称后,旧名称仍将显示,直到我再次连接到它。

要显示设备名称,您需要在从CentralManager回调DidDiscoveryPeripal时,在包含多个键(取决于您的设备)的advertisementData字典中查看

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *, id> *)advertisementData RSSI:(NSNumber *)RSSI
-(无效)中央管理器:(CBCentralManager*)中央发现外围设备:(CBPeripheral*)外围广告数据:(NSDictionary*)广告数据RSSI:(NSNumber*)RSSI
您可以查找keyCBAdvertisementDataLocalNameKey

如果您没有看到名称,您可以在固件中进行更改,以便在GATT特性中包含名称


您可以使用LightBlue应用程序验证一次。这是app store上的一个很好的应用程序,用于测试您的BLE设备。

您可以使用LightBlue.app进行检查(我不是开发人员,它只是AppStore上的一个很好的调试应用程序)。看看你是否看到了。否则,您可能不会对其进行广告宣传,并且由于广告数据分为块,请检查(使用正确的扫描选项),它会多次出现,并且一次出现在其名称中。该名称可以包含在GATT名称特征和广告数据中。您可以从广告数据中提取名称字段,以确保获得正确的名称。我知道该设备正在广告,因为当使用AppStore中的应用程序“Bluetooth BLE device Finder”应用程序时,该应用程序会自动尝试连接到所有外围设备,并且名称正在更新。因此,我知道这是广告,只更新了初始连接时的名称。