我目前正在尝试制作一个连接到蓝牙设备的应用程序,完成后会打印出[]]
我在连接时遇到问题,它不会打印出服务,而是打印出“当委托为nil或未实现外围设备:didDiscoverServices:”。但是问题是我确实有didDiscoverServices。
这里是我的视图控制器
import UIKit import CoreBluetooth let rowerServiceCBUUID = CBUUID(string: "CE060000-43E5-11E4-916C-0800200C9A66") class HRMViewController: UIViewController { @IBOutlet weak var heartRateLabel: UILabel! @IBOutlet weak var bodySensorLocationLabel: UILabel! var centralManager: CBCentralManager! var pmPeripheral: CBPeripheral! override func viewDidLoad() { super.viewDidLoad() centralManager = CBCentralManager(delegate: self, queue: nil) // Make the digits monospaces to avoid shifting when the numbers change heartRateLabel.font = UIFont.monospacedDigitSystemFont(ofSize: heartRateLabel.font!.pointSize, weight: .regular) } func onHeartRateReceived(_ heartRate: Int) { heartRateLabel.text = String(heartRate) print("BPM: \(heartRate)") } } extension HRMViewController: CBCentralManagerDelegate { func centralManagerDidUpdateState(_ central: CBCentralManager) { switch central.state { case .unknown: print("central.state is .unknown") case .resetting: print("central.state is .resetting") case .unsupported: print("central.state is .unsupported") case .unauthorized: print("central.state is .unauthorized") case .poweredOff: print("central.state is .poweredOff") case .poweredOn: print("central.state is .poweredOn") centralManager.scanForPeripherals(withServices: [rowerServiceCBUUID]) @unknown default: break } } func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) { print(peripheral) pmPeripheral = peripheral centralManager.stopScan() centralManager.connect(pmPeripheral!) } func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) { print("Connected!") pmPeripheral.discoverServices(nil) } } extension HRMViewController: CBPeripheralDelegate { func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?) { guard let services = peripheral.services else { return } for service in services { print(service) pmPeripheral.delegate = self } } }
有人知道我应该怎么做吗?谢谢。
我目前正在尝试制作一个连接到蓝牙设备的应用程序,一旦完成打印,我就遇到了问题,一旦连接,它就不会打印出服务,而是打印出“ ...
尽管您设置了中央经理的代表,但尚未设置peripheral's