/DotNet.BluetoothLE

Cross-platform Bluetooth LE library for MAUI, Xamarin, Windows, and Linux applications

Primary LanguageC#MIT LicenseMIT

.NET Cross-Platform Bluetooth LE Plugin

STATUS: This project is in the Beta-2 phase.

DotNet.BluetoothLE is a cross-platform plugin for accessing Bluetooth LE in your Android, Linux, Mac, Windows (UWP, .NET Core) applications. This allows developers to maintain the same base code which can be deployed across multiple platforms.

As developers, some of us want bare-bones, down to the metal code without the need of boiler-plate stuff that doesn't align with our architectures. That is the goal of DotNet.BluetoothLE.

Support

Platform Version Status
Android 10.0 Beta
UWP 19041 Beta
iOS Beta
Mac 10.9 (Maverics) Beta
Linux Coming Soon - Plugin.BlueZ
Tizen TBA

Setup

Android

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

Android 12 and above

<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />

Windows

Set in your .appxmanifest file

<DeviceCapability Name="bluetooth" />

iOS

<key>UIBackgroundModes</key>
<array>
    <!-- for connecting to devices (client) -->
    <string>bluetooth-central</string>

    <!-- for server configurations if needed -->
    <string>bluetooth-peripheral</string>
</array>

<!-- Description of the Bluetooth request message (required on iOS 10, deprecated) -->
<key>NSBluetoothPeripheralUsageDescription</key>
<string>YOUR CUSTOM MESSAGE</string>

<!-- Description of the Bluetooth request message (required on iOS 13) -->
<key>NSBluetoothAlwaysUsageDescription</key>
<string>YOUR CUSTOM MESSAGE</string>

Linux

Coming soon.