protected virtual void StartAdvertising(AdvertisementData adData) { var settings = new AdvertiseSettings.Builder() .SetAdvertiseMode(AdvertiseMode.Balanced) .SetConnectable(true); var data = new AdvertiseData.Builder() .SetIncludeDeviceName(true) .SetIncludeTxPowerLevel(true); if (adData.ManufacturerData != null) { data.AddManufacturerData(adData.ManufacturerData.CompanyId, adData.ManufacturerData.Data); } foreach (var serviceUuid in adData.ServiceUuids) { var uuid = ParcelUuid.FromString(serviceUuid.ToString()); data.AddServiceUuid(uuid); } this.manager .Adapter .BluetoothLeAdvertiser .StartAdvertising( settings.Build(), data.Build(), this.adCallbacks ); }
public override void Start(AdvertisementData adData) { if (this.isRunning) { return; } this.StartAdvertising(adData); this.StartGatt(); this.isRunning = true; }
public override void Start(AdvertisementData adData) { if (this.manager.Advertising) { return; } if (CBPeripheralManager.AuthorizationStatus != CBPeripheralManagerAuthorizationStatus.Authorized) { throw new ArgumentException("Permission Denied - " + CBPeripheralManager.AuthorizationStatus); } if (this.manager.State != CBPeripheralManagerState.PoweredOn) { throw new ArgumentException("Invalid State - " + this.manager.State); } this.manager.StartAdvertising(new StartAdvertisingOptions { LocalName = adData.LocalName, ServicesUUID = adData .ServiceUuids .Select(x => CBUUID.FromString(x.ToString())) .ToArray() }); this.services .Cast <GattService>() .Select(x => { x.Native.Characteristics = x .Characteristics .OfType <GattCharacteristic>() .Select(y => { y.Native.Descriptors = y .Descriptors .OfType <GattDescriptor>() .Select(z => z.Native) .ToArray(); return(y.Native); }) .ToArray(); return(x.Native); }) .ToList() .ForEach(this.manager.AddService); }
public override void Start(AdvertisementData adData) { this.publisher.Advertisement.Flags = BluetoothLEAdvertisementFlags.ClassicNotSupported; this.publisher.Advertisement.ManufacturerData.Clear(); this.publisher.Advertisement.ServiceUuids.Clear(); if (adData.ManufacturerData != null) { using (var writer = new DataWriter()) { writer.WriteBytes(adData.ManufacturerData.Data); var md = new BluetoothLEManufacturerData(adData.ManufacturerData.CompanyId, writer.DetachBuffer()); this.publisher.Advertisement.ManufacturerData.Add(md); } } foreach (var serviceUuid in adData.ServiceUuids) { this.publisher.Advertisement.ServiceUuids.Add(serviceUuid); } this.publisher.Start(); //GattCharacteristicUuids. //GattServiceUuids.AlertNotification //new GattReliableWriteTransaction().Write/Commit }
public abstract void Start(AdvertisementData adData);