Skip to content

Background Operations

Shiny BLE supports background operations through delegates. These fire when Bluetooth events occur even when your app is in the background.

The IBleDelegate interface receives adapter state and peripheral connection events in the background.

public class MyBleDelegate : BleDelegate
{
readonly ILogger<MyBleDelegate> logger;
public MyBleDelegate(ILogger<MyBleDelegate> logger)
{
this.logger = logger;
}
public override Task OnAdapterStateChanged(AccessState state)
{
this.logger.LogInformation("BLE Adapter State: {State}", state);
return Task.CompletedTask;
}
public override Task OnPeripheralStateChanged(IPeripheral peripheral)
{
this.logger.LogInformation(
"Peripheral {Name} ({Uuid}) - {Status}",
peripheral.Name,
peripheral.Uuid,
peripheral.Status
);
return Task.CompletedTask;
}
}

Register your delegate during startup:

services.AddBluetoothLE<MyBleDelegate>();
ScenarioUse
Respond to events while app is backgroundedDelegate
Monitor connection state while app is in foregroundWhenStatusChanged() observable
React to adapter on/off changes globallyDelegate
UI-bound connection monitoringObservable