Я создаю пользовательский CBService и добавляю их в CBPeripheralManager. Я рекламирую сервис вместе с рекламными данными. Но я не могу увидеть сервис, который я создал в приложении Light Blue. Приложение Light Blue показывает две службы, которые я не знаю, какие они есть, и я не добавил их. Рекламные данные отображаются, но не сервис. Ниже моя реализация создания сервиса и его рекламы в Xamarin:
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));
try
{
var newService = new CBMutableService(CBUUID.FromString("1F3A8B1E-4BAA-45DA-B3A4-7A19DDC86305"), false);//1F3A8B1E-4BAA-45DA-B3A4-7A19DDC86305
newService.Characteristics = new CBCharacteristic[]
{
new CBMutableCharacteristic(CBUUID.FromString("906377DD-F782-448C-9A65-796B48E10894"),//906377DD-F782-448C-9A65-796B48E10894
CBCharacteristicProperties.Read, "FooChar",
CBAttributePermissions.Readable),
new CBMutableCharacteristic(CBUUID.FromString("2B77EC99-BE87-45D3-863C-599D5202E4C0"),//2B77EC99-BE87-45D3-863C-599D5202E4C0
CBCharacteristicProperties.Write, null,
CBAttributePermissions.Writeable)
};
cbPeriphMang.AddService(newService);
//cbPeriphMang.RemoveAllServices();
}
catch(Exception ex)
{
}
if (cbPeriphMang.Advertising) cbPeriphMang.StopAdvertising();
cbPeriphMang.StartAdvertising(new StartAdvertisingOptions(){LocalName="alpha", ServicesUUID = new CBUUID[] { CBUUID.FromString("1F3A8B1E-4BAA-45DA-B3A4-7A19DDC86305")} } );
}