Platform Documentation

This section documents implementation-level platform behavior.

Included Files

Capability Matrix

Legend:

  • ✅ implemented
  • ⚠️ implemented with platform-managed behavior or constrained support
  • ❌ not implemented
Capability Android iOS/macOS Windows
Scanning
Connection
GATT read/write/notify
Descriptor access
MTU request ✅ API 21+ ❌ (platform-managed) ❌ (platform-managed)
Connection priority request ❌ (platform-managed)
PHY read ✅ API 26+ ⚠️ (platform-managed)
PHY set ✅ API 26+ ❌ (platform-managed)
L2CAP channel ✅ API 29+ ✅ iOS 11+/macOS 10.13+
Connected RSSI read
Broadcasting (GATT server/peripheral role)
Force-disconnect a subscribed GATT client ❌ (platform-managed)

Exception Behavior For Unsupported Operations

  • Windows advanced operations throw NotSupportedException for:
    • L2CAP open
    • MTU request
    • Connection priority request
    • PHY preference request
    • Connected RSSI read
    • Force-disconnecting a subscribed GATT client from a broadcaster (Windows exposes no API to do this; the client must disconnect itself)
  • DotNetCore fallback implementations throw PlatformNotSupportedException for runtime BLE operations.

Cross-Platform Usage Pattern

try
{
    await device.OpenL2CapChannelAsync(psm);
}
catch (NotSupportedException)
{
    // Fallback path for platforms without L2CAP support.
}
if (DeviceInfo.Platform == DevicePlatform.Android)
{
    await device.RequestMtuAsync(512);
}