Enumerations
Every enum's members and XML doc descriptions are generated from source in the API reference (see Bluetooth.Abstractions.Enums) — this page only covers the handful of decision-guidance details (timing/power trade-offs) that don't fit a member-level XML doc comment.
Core Enums
| Enum | Namespace | What it's for |
|---|---|---|
| CharacteristicProperties | Bluetooth.Abstractions.Enums |
GATT characteristic properties (Read/Write/Notify/Indicate/...) as advertised by a remote characteristic |
| CharacteristicPermissions | Bluetooth.Abstractions.Enums |
Local (peripheral-role) characteristic access permissions |
| PhyMode | Bluetooth.Abstractions.Enums |
Bluetooth 5 PHY (1M/2M/Coded) |
| Manufacturer | Bluetooth.Abstractions.Enums |
BT SIG assigned company identifiers, parsed from advertisement manufacturer data. short-backed, Unknown = -1 |
| PermissionRequestStrategy | Bluetooth.Abstractions |
Controls whether the library requests OS permissions automatically or leaves it to the app |
| ConnectionPriority | Bluetooth.Abstractions.Enums |
See comparison table below |
| TransportType | Bluetooth.Abstractions.Enums |
BR/EDR vs LE transport selection (Android-specific concept) |
Scanning Enums
| Enum | Namespace | What it's for |
|---|---|---|
| BluetoothScanMode | Bluetooth.Abstractions.Scanning.Options |
See comparison table below |
| BluetoothScanCallbackType | Bluetooth.Abstractions.Scanning.Options |
Android scan callback matching behavior |
| BluetoothDeviceDisappearanceBehavior | Bluetooth.Abstractions.Scanning.Options |
What happens to a device in the scanner's list once it stops advertising |
Broadcasting Enums
| Enum | Namespace | What it's for |
|---|---|---|
| BluetoothCharacteristicProperties | Bluetooth.Abstractions.Broadcasting.Enums |
GATT properties to advertise on a local (peripheral-role) characteristic |
| BluetoothCharacteristicPermissions | Bluetooth.Abstractions.Broadcasting.Enums |
Access permissions for a local characteristic |
| BluetoothDescriptorPermissions | Bluetooth.Abstractions.Broadcasting.Enums |
Access permissions for a local descriptor |
BroadcastingOptions is a record, not an enum — see Broadcasting-Options.md.
Decision Guidance
Scan mode trade-offs
ScanningOptions.ScanMode (BluetoothScanMode) is a hint most fully honored on Android; iOS/macOS and Windows manage actual scan timing themselves.
| Mode | Android scan interval | Power | Best for |
|---|---|---|---|
LowPower |
~5 s | Very low | Background monitoring |
Balanced |
~2 s | Moderate | General use (default) |
LowLatency |
Continuous/near-continuous | High | Active device search, pairing |
Opportunistic |
Piggybacks on other apps' scans (Android 7+ only, falls back to Balanced elsewhere) |
Minimal | Very low power scenarios |
ScanningOptions is immutable (init-only) — to change scan mode, stop and restart with new options:
await scanner.StopScanningAsync();
await scanner.StartScanningAsync(options with { ScanMode = BluetoothScanMode.LowPower });
Connection priority trade-offs
ConnectionPriority maps to the standard Android GATT connection-interval constants:
| Priority | Interval | Best for |
|---|---|---|
LowPower |
~100-125 ms | Idle/background connections |
Balanced |
~30-50 ms | General use (default) |
High |
~11.25-15 ms | Bulk data transfer, firmware updates |
await device.RequestConnectionPriorityAsync(BluetoothConnectionPriority.High);