如何在Xamarin iOS中使用蓝牙低功耗协议发布制造商特定的数据?

我需要在Xamarin iOS中使用蓝牙低能量协议广播包含特定制造商特定数据的广告数据包。 我能够广播广告数据包,但收到时不包含制造商特定的数据。 它们包含我设置的本地名称和数据服务UUID键。 我应该提到在Xamarin中这样做Android不是问题。 你能告诉我为什么制造商的具体数据不在Xamarin iOS中播放? 我正在使用下面的代码:

using CoreBluetooth; namespace XamarinBt { public class BluetoothOperations { CBPeripheralManager cbPeriphMang = new CBPeripheralManager(); public void AdvertiseData() { var uui = new CBUUID[] { CBUUID.FromString("E20A39F4-73F5-4BC4-A12F-17D1AD07A961") }; var nsArray = NSArray.FromObjects(uui); var nsObject = NSObject.FromObject(nsArray); var manufacturerDataBytes = new byte[6] { 5, 255, 76, 0, 25, 35 }; var advertisementData = new NSDictionary( CBAdvertisement.DataLocalNameKey, "id1", CBAdvertisement.DataServiceUUIDsKey, nsObject, CBAdvertisement.DataManufacturerDataKey, NSData.FromArray(manufacturerDataBytes)); if(cbPeriphMang.Advertising) cbPeriphMang.StopAdvertising(); cbPeriphMang.StartAdvertising(advertisementData); } } } 

不幸的是,你不能在广告中指定制造商数据。

从文档 :

advertisementData

包含要公布的数据的可选字典。 CBCentralManagerDelegate中详细介绍了一个advertisementData字典的可能的键。 也就是说,外围pipe理器对象只支持两个键: CBAdvertisementDataLocalNameKeyCBAdvertisementDataServiceUUIDsKey