Tig*_*ang 7 ios core-bluetooth gatt swift bluetooth-gatt
我有一个外围设备,支持 A2DP 配置文件和BR/EDR 上的 gatt。各种 gatt 服务都在蓝牙经典的 sdp 记录中注册。\n我开发了一个 Android 应用程序来与其成功通信,如下所示:
\n\n//here scan the classic Bluetooth to get its address\nBluetoothDevice device = bluetoothAdapter.getRemoteDevice(**CLASSIC_BLUETOOTH_ADDRESS**);\ndevice.connectGatt(context, false, gattCallback, BluetoothDevice.TRANSPORT_BREDR);\nRun Code Online (Sandbox Code Playgroud)\n\n现在我需要开发一个iOS应用程序,经过大量搜索,似乎iOS 13之后CoreBluetooth确实支持GATT over BR/EDR,但与android不同的是,它无法扫描经典蓝牙设备,但我确实找到了示例代码\ n苹果示例代码在这里,所以我编写我的测试代码如下:
\n\n\nimport CoreBluetooth\nimport UIKit\nimport os.log\n\nstruct BTConstants {\n static let uuidService = CBUUID.init(string: "66666666-8888-7777-5555-123456780000") //our gatt service uuid(modified)\n}\n\nclass CentralViewController: UIViewController {\n private var cbManager: CBCentralManager!\n\n override func viewDidLoad() {\n super.viewDidLoad()\n cbManager = CBCentralManager(delegate: self, queue: nil)\n }\n}\n\nextension CentralViewController: CBCentralManagerDelegate {\n func centralManagerDidUpdateState(_ central: CBCentralManager) {\n switch central.state {\n case .resetting:\n os_log("Connection with the system service was momentarily lost. Update imminent")\n case .unsupported:\n os_log("Platform does not support the Bluetooth Low Energy Central/Client role")\n case .unauthorized:\n os_log("Something went wrong. Cleaning up cbManager")\n case .poweredOff:\n os_log("Bluetooth is currently powered off")\n case .poweredOn:\n os_log("Starting cbManager")\n let matchingOptions = [CBConnectionEventMatchingOption.serviceUUIDs: [BTConstants.uuidService]]\n cbManager.registerForConnectionEvents(options: matchingOptions)\n default:\n os_log("Cleaning up cbManager")\n }\n }\n\n func centralManager(_ central: CBCentralManager, connectionEventDidOccur event: CBConnectionEvent, for peripheral: CBPeripheral) {\n os_log("connectionEventDidOccur ")\n switch event {\n case .peerConnected:\n os_log("Peer disconnected!")\n case .peerDisconnected:\n os_log("Peer disconnected!")\n default:\n os_log("The default!")\n }\n }\n}\n\nRun Code Online (Sandbox Code Playgroud)\n\n当我从 iOS 蓝牙设置连接到我的设备时,没有任何反应,\n未调用回调\xef\xbc\x8c,所以我是否错过了什么?任何帮助将不胜感激。
\n| 归档时间: |
|
| 查看次数: |
795 次 |
| 最近记录: |