Cross-platform Bluetooth Low Energy library, based on Plugin.BLE , for Xamarin.iOS, Xamarin.Android, Xamarin.Mac, UWP(Preview), WPF for.Net Core 3.x and .Net Framework 4.6.1+(Preview - Windows 10 only), TVOS(Preview) and WatchOS(Preview), Tizen(coming soon)
We have had added .Net Core and .Net Framework 4.6.1+ support for Windows using the Windows RT API using Microsoft.Windows.SDK.Contracts
. The UWP,.Net Core and .Net Framework implementations are essentially the same as they use the same APIs. We have duplicated ObservableBluetoothLeDevice
from Windows Community Toolkit as it doesn't work with Microsoft.Windows.SDK.Contracts
, .Net Core or .Net Framework. ObservableBluetoothLeDevice
has been modified to use the WPF Application dispatcher on .Net Core and .Net framework.
As of 1st of June 2020 this is essentially Plugin.BLE repackaged in a single Multi-target project with additional preview support for TVOS, WatchOS and .Net Core 3.x and .Net Framework 4.6.1+. Mac support is fixed(there is a Plugin.BLE issue with Assembly names when using Xamarin.Forms and Xamarin.Mac), based on the UWP branch.
I have migrated the source code to single Multi-target library and added support for TVOS, .Net Core and WatchOS(untested). Additionally, I have moved away from Base classes (DeviceBase
, AdapterBase
etc) and are using multi-targeted partial classes instead.
I have changed the namespaces from Plugin.BLE
to System.BluetoothLe
and the main class from CrossBluetoothLe
to BluetoothLe
This allows for seperation of the projects but also a fair amount of drop-in-ability for anyone using Plugin.BLE
The docs on Plugin.BLE should still be acurrate, with the changes noted above taken into consideration.
Xamarin.iOS, Xamarin.Android and Xamarin.Mac should be considered stable, as they are in Plugin.BLE.
All other platforms are in preview and essentially untested and compile without issue only.
This is a work in progress and although its based on a stable library, this will change and no guarenteee is made about the API at this stage or the stability of the library.
The first step is to stabilize the API and supported platforms and then extend to other platforms (Tizen, UWP, WPF/Net Core).
New docs and samples