gpt4 book ai didi

swift - 如何使用 Core bluetooth Framework 在 iOS 13 中发现经典蓝牙设备

转载 作者:行者123 更新时间:2023-12-01 04:27:42 29 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





CoreBluetooth and BluetoothManager, device is not BLE

(2 个回答)


2年前关闭。




我正在尝试在 iOS-13 上运行的应用程序中使用 Core Bluetooth 框架发现蓝牙 LE 和 Classic (BR/EDR) 设备。但我只能找到 BLE 设备。

如何扫描蓝牙经典设备?

在初始化 CBCentralManager 并将 CentralManager 的状态设为开机后,我通过在 Services 和 Options 中传递 nil 来扫描外围设备。

下面提到的代码: -

private var cbManager: CBCentralManager!

override func viewDidLoad() {
super.viewDidLoad()
cbManager = CBCentralManager(delegate: self, queue: nil)
}

func centralManagerDidUpdateState(_ central: CBCentralManager) {
switch central.state {
case .poweredOn:
cbManager.scanForPeripherals(withServices: nil, options:nil)

default:
os_log("Cleaning up cbManager")
}
}


func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {

if let name = peripheral.name {
print(name)
}
}

通过这个我只得到BLE设备。预期结果应该是:BLE 和 Classic(BR/EDR) 设备列表。

最佳答案

在您的.powerOn 内添加它以便能够匹配特定的服务 UUID。

let matchingOptions = [CBConnectionEventMatchingOption.serviceUUIDs: [uuid-to-classic-bt-device]]
cbManager.registerForConnectionEvents(options: matchingOptions)

然后在委托(delegate)方法 centralManager:connectionEventDidOccur:forPeripheral:您可以查看事件 .peerDisconnected.peerConnected用你找到的外围设备做点什么。

Apple 提供了一个示例 Using Core Bluetooth Classic

关于swift - 如何使用 Core bluetooth Framework 在 iOS 13 中发现经典蓝牙设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57050848/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com