核心蓝牙CBAdvertisementDataServiceDataKey可能有一些自定义数据



im试图用BLE在android和iOS设备之间发送一些数据,但我需要在iOS侧向android发送一些自定义信息,我已经尝试了CBCentralManager提供的几乎所有密钥,但我尝试用密钥CBAdvertisementDataServiceDataKey发送一些字符串,但什么都没发生,有人知道如何在该密钥中发送信息吗?

事先我试着在没有连接的情况下获得这些信息。

这是我用来制作我之前解释过的部分的函数。

func peripheralManagerDidUpdateState(_ peripheral: CBPeripheralManager) {

if peripheral.state == .poweredOn{

let data = CBMutableCharacteristic(type: hardCodeUUID, properties: [.read], value: userName.data(using: .utf8), permissions: [.readable])


peripherialManager.startAdvertising([ CBAdvertisementDataLocalNameKey:"Jael2522",CBAdvertisementDataServiceDataKey:userName.data(using: .utf8),CBAdvertisementDataServiceDataKey:[CBUUID(string: "Jose")]])


let serialService = CBMutableService(type: hardCodeUUID, primary: true)
serialService.characteristics = [data]
peripherialManager.add(serialService)


}

}

CBAdvertisementDataServiceDataKey在iOS中是只读的。你唯一可以直接宣传的是本地名称和服务UUID列表(这两个都不能保证会被宣传,但如果你的应用程序在前台,如果它们可以放在数据包中,它们就会被宣传(。

为了在设备之间可靠地发送数据,您需要一侧实际连接并读取或写入特性。

最新更新