ios – Swift 3:无法通过BLE连接到外设
发布时间:2020-12-14 19:32:48 所属栏目:百科 来源:网络整理
导读:我刚接触BLE,目前正在尝试制作一个简单的应用程序,它将连接到我的自定义BLE设备.我能够发现BLE设备,但由于某种原因我无法连接到它. 我尝试用’浅蓝’检查它,它显示我的设备可连接,似乎工作正常.但在我发现设备后,我的应用程序,CB经理尝试连接到它,似乎“冻结
我刚接触BLE,目前正在尝试制作一个简单的应用程序,它将连接到我的自定义BLE设备.我能够发现BLE设备,但由于某种原因我无法连接到它.
我尝试用’浅蓝’检查它,它显示我的设备可连接,似乎工作正常.但在我发现设备后,我的应用程序,CB经理尝试连接到它,似乎“冻结”?功能’didConnect peripheral’永远不会被触发,外设状态永远是’连接’. 我该如何识别问题?我可以在连接方法中包含任何选项,还是以某种方式跟踪连接过程? 我很感激任何建议在哪里寻找问题. 在XCode 8.2.1中工作,使用Swift 3. iOS 10.2.1安装在测试手机上 这是我的代码: import UIKit import CoreBluetooth class InfoPageViewController: UIViewController,CBCentralManagerDelegate,CBPeripheralDelegate { var manager:CBCentralManager! var peripheral:CBPeripheral! let BEAN_NAME = "MyDevice" override func viewDidLoad() { super.viewDidLoad() manager = CBCentralManager(delegate: self,queue: nil) } func centralManager(_ central: CBCentralManager,didDiscover peripheral: CBPeripheral,advertisementData: [String : Any],rssi RSSI: NSNumber) { let device = (advertisementData as NSDictionary) .object(forKey: CBAdvertisementDataLocalNameKey) as? NSString if device?.contains(BEAN_NAME) == true { self.manager.stopScan() self.peripheral = peripheral self.peripheral.delegate = self manager.connect(peripheral,options: nil) print("discovered (BEAN_NAME)") } } func centralManager( central: CBCentralManager,didConnect peripheral: CBPeripheral) { print("connected to (BEAN_NAME)") peripheral.discoverServices(nil) } 解决方法func centralManager(central: CBCentralManager,didConnect peripheral: CBPeripheral) {} --------------------^ 与: func centralManager(_ central: CBCentralManager,didConnect peripheral: CBPeripheral) --------------------^ 方法的签名不正确,你错过了_. 方法签名很重要. 您从文档中复制/粘贴一个或删除它,让XCode执行自动完成操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |