【发布时间】:2020-09-10 10:08:27
【问题描述】:
当我在我的 macOS 应用程序中运行以下代码时 - 许多外围设备没有名称 - 但是当我在同一台计算机上打开“蓝牙首选项”时,我可以看到它们的名称。
在扫描蓝牙设备以获取其名称时,我缺少哪些步骤?
import Foundation
import CoreBluetooth
class Scanner: NSObject, CBPeripheralDelegate, CBCentralManagerDelegate {
var centralManager: CBCentralManager?
func centralManagerDidUpdateState(_ central: CBCentralManager) {
switch (central.state) {
case .poweredOn:
print("BLE Powered On - scanning")
centralManager?.scanForPeripherals(withServices: nil, options: [CBCentralManagerScanOptionAllowDuplicatesKey: true])
break
default:
print("Unknown Case")
}
}
internal func centralManager(_ central: CBCentralManager,
didDiscover peripheral: CBPeripheral,
advertisementData: [String : Any],
rssi RSSI: NSNumber)
{
print("discovered: \(peripheral.name ?? "nil")")
}
func start() {
print("starting central manager")
centralManager = CBCentralManager(delegate: self, queue: nil)
}
}
【问题讨论】:
标签: swift macos core-bluetooth