Swift MacOS:BLE扫描始终将nil作为peripheral.name返回

Swift MacOS:BLE扫描始终将nil作为peripheral.name返回,swift,macos,bluetooth,bluetooth-lowenergy,Swift,Macos,Bluetooth,Bluetooth Lowenergy,我正在扫描MacOS上的可扩展设备。我正在使用以下代码: final class BLERepository: NSObject { private var _centralManager: CBCentralManager! override init() { self._centralManager = CBCentralManager(delegate: nil, queue: nil) super.init() self._centralManager.

我正在扫描MacOS上的可扩展设备。我正在使用以下代码:

final class BLERepository: NSObject {
  private var _centralManager: CBCentralManager!

  override init() {
    self._centralManager = CBCentralManager(delegate: nil, queue: nil)
    super.init()
    self._centralManager.delegate = self
  }
}

extension BLERepository: CBPeripheralDelegate, CBCentralManagerDelegate {
  func centralManagerDidUpdateState(_ central: CBCentralManager) {
    switch central.state {
    case .poweredOn:
      _centralManager.scanForPeripherals(withServices: nil, options: [CBCentralManagerScanOptionAllowDuplicatesKey : true])
    default:
      break
    }
  }

  func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
    print("\(peripheral.name)")
  }
}
外围设备名称始终为零。但据我所知,
cbcentralmanagerscanoptionalLowDuplicatesky:true
应该可以解决这个问题,我会找到副本,但名称从未生效。
我试着使用Xcode蓝牙工具或其他一些扫描仪,所有这些扫描仪都知道我周围设备的名称

您是否尝试过从广告数据中提取名称?这应该更为一致。我试图在广告数据{print(“广告数据:\(广告)”)中为广告设置
-什么都没有((BLE设备在其广告包中不包含名称是完全正常的。空间非常有限,名称可能太长而无法容纳。您有理由相信这些设备在广告名称吗?(这与有名称不同。)您对BLE扫描仪(如LightBlue或BlueSee)看到了什么?是的。我在原始问题中提到了这一点-不同设备上的第三方扫描仪会获得名称。这是否回答了您的问题?