gpt4 book ai didi

swift - 蓝牙 retrieveConnectedPeripherals swift 需要什么 CBUUID

转载 作者:搜寻专家 更新时间:2023-11-01 07:14:59 25 4
gpt4 key购买 nike

我正在尝试从我的 iOS 设备连接到的蓝牙外围设备获取服务列表。 retrieveConnectedPeripherals 是这样做的方法吗?如果是这样,我需要什么 CBUUID 来检索具有免提服务的外围设备。

import CoreBluetooth
class TopVC: UIViewController, CBCentralManagerDelegate, CBPeripheralDelegate {

var centralManager: CBCentralManager!
var peripheral: CBPeripheral!

override func viewDidLoad() {
super.viewDidLoad()

centralManager = CBCentralManager(delegate: self, queue: nil)
}

// required protocol method
func centralManagerDidUpdateState(_ central: CBCentralManager) {
if central.state == .poweredOn {
self.centralManager.retrieveConnectedPeripherals(withServices: [CBUUID])
} else {
print("bluetooth not available")
}
}

}

最佳答案

通常你可以从 func scanForPeripherals(withServices serviceUUIDs: [CBUUID]?, options: [String : Any]? = nil) 开始扫描可用的 BT 设备。然后,当发现新设备时,您将调用您的代表。

func retrieveConnectedPeripherals(withServices serviceUUIDs: [CBUUID]) -> [CBPeripheral]立即为您提供当前连接的 BT 设备列表,它无法告诉您之前连接过哪些设备。通常您可以传递一个空数组,这将帮助您获取所有已连接的设备。

如何创建一个CBUUID实例?

 /*!
* @method UUIDWithString:
*
* @discussion
* Creates a CBUUID with a 16-bit, 32-bit, or 128-bit UUID string representation.
* The expected format for 128-bit UUIDs is a string punctuated by hyphens, for example 68753A44-4D6F-1226-9C60-0050E4C00067.
*
*/
public /*not inherited*/ init(string theString: String)

让 uuid = CBUUID(string: "XXXXXXX")

通常,如果您检索具有空数组CBUUID 的已连接外设,您将检索到已连接外设的空列表。这是由安全原因引起的。所以你必须指定一些 CBUUID 来检索具有指定 CBService 的外围设备。

关于swift - 蓝牙 retrieveConnectedPeripherals swift 需要什么 CBUUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42656538/

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