BluetoothLEHelper

The BluetoothLEHelper class provides functionality to easily enumerate, connect to and interact with Bluetooth LE Peripherals.

BluetoothLEHelper class

Properties

Property Type Description
BluetoothLeDevices ObservableCollection<ObservableBluetoothLEDevice> Gets the list of available bluetooth devices
IsEnumerating bool Gets a value indicating whether app is currently enumerating
IsPeripheralRoleSupported bool Gets a value indicating whether peripheral mode is supported by this device
IsCentralRoleSupported bool Gets a value indicating whether central role is supported by this device

Methods

Methods Return Type Description
StartEnumeration() void Starts enumeration of bluetooth le devices
StopEnumeration() void Stops enumeration of bluetooth device

Events

Events Description
EnumerationCompleted An event for when the enumeration is complete

ObservableBluetoothLEDevice class

Properties

Property Type Description
BluetoothAddressAsString string Gets the bluetooth address of this device as a string
BluetoothAddressAsUlong ulong Gets the bluetooth address of this device
BluetoothLEDevice BluetoothLEDevice Gets the base bluetooth device this class wraps
DeviceInfo DeviceInformation Gets the device information for the device this class wraps
ErrorText string Gets the error text when connecting to this device fails
Glyph BitmapImage Gets or sets the glyph of this bluetooth device
IsConnected bool Gets a value indicating whether this device is connected
IsPaired bool Gets a value indicating whether this device is paired
Name string Gets the name of this device
RSSI int Gets the RSSI value of this device
Services ObservableCollection<ObservableGattDeviceService> Gets the services this device supports
ServiceCount int Gets or sets the number of services this device has

Methods

Methods Return Type Description
ConnectAsync() Task ConnectAsync to this bluetooth device
DoInAppPairingAsync() Task Does the in application pairing
UpdateAsync(DeviceInformationUpdate) Task Updates this device's deviceInformation
ToString() string Overrides the ToString function to return the name of the device

ObservableGattDeviceService

Properties

Property Type Description
Characteristics ObservableCollection<ObservableGattCharacteristics> Gets all the characteristics of this service
Name string Gets the name of this service
UUID string Gets the UUID of this service
Service GattDeviceService Gets the service this class wraps

ObservableGattCharacteristics

Properties

Property Type Description
Characteristic GattCharacteristic Gets or sets the characteristic this class wraps
IsIndicateSet bool Gets a value indicating whether indicate is set
IsNotifySet bool Gets a value indicating whether notify is set
Parent ObservableGattDeviceService Gets or sets the parent service of this characteristic
Name string Gets or sets the name of this characteristic
UUID string Gets or sets the UUID of this characteristic
Value string Gets the value of this characteristic
DisplayType DisplayTypes Gets or sets how this characteristic's value should be displayed

Methods

Methods Return Type Description
ReadValueAsync() Task<string> Reads the value of the Characteristic
SetIndicateAsync() Task<bool> Set's the indicate descriptor
StopIndicateAsync() Task<bool> Unset the indicate descriptor
SetNotifyAsync() Task<bool> Sets the notify characteristic
StopNotifyAsync() Task<bool> Unsets the notify descriptor

Example

// Get a local copy of the context for easier reading
BluetoothLEHelper bluetoothLEHelper = BluetoothLEHelper.Context;

// check if BluetoothLE APIs are available
if (BluetoothLEHelper.IsBluetoothLESupported)
{
    // Start the Enumeration
    bluetoothLEHelper.StartEnumeration();

    // At this point the user needs to select a device they want to connect to. This can be done by
    // creating a ListView and binding the bluetoothLEHelper collection to it. Once a device is found, 
    // the Connect() method can be called to connect to the device and start interacting with its services

    // Connect to a device if your choice
    ObservableBluetoothLEDevice device = bluetoothLEHelper.BluetoothLeDevices[<Device you choose>];
    await device.ConnectAsync();

    // At this point the device is connected and the Services property is populated.

    // See all the services
    var services = device.Services;
}
' Get a local copy of the context for easier reading
Dim bluetoothLEHelper As BluetoothLEHelper = BluetoothLEHelper.Context

' check if BluetoothLE APIs are available
If BluetoothLEHelper.IsBluetoothLESupported Then
    ' Start the Enumeration
    bluetoothLEHelper.StartEnumeration()

    ' At this point the user needs to select a device they want to connect to. This can be done by
    ' creating a ListView and binding the bluetoothLEHelper collection to it. Once a device is found, 
    ' the Connect() method can be called to connect to the device and start interacting with its services

    ' Connect to a device if your choice
    Dim device As ObservableBluetoothLEDevice = bluetoothLEHelper.BluetoothLeDevices(<Device you choose>)
    Await device.ConnectAsync()

    ' At this point the device is connected and the Services property is populated.

    ' See all the services
    Dim services = device.Services
End If

Sample Project

BluetoothLE Helper Sample Page Source. You can see this in action in the Windows Community Toolkit Sample App.

Requirements

Device family Universal, 10.0.16299.0 or higher
Namespace Microsoft.Toolkit.Uwp.Connectivity
NuGet package Microsoft.Toolkit.Uwp

API