Arendi.BleLibrary (Generic Edition)
Arendi.BleLibrary for Windows


The library provides Bluetooth Low Energy support for multiple platforms. It handles all the various API's of the different operating systems and offers a common high level interface for the application.

Supported Platforms

iOS (Xamarin.iOS)

The iOS version of the library supports BLE on iOS devices with hardware BLE support.
Supported Versions: iOS 7.x, iOS 8.x and iOS 9.x

Android (Xamarin.Android)

The Android version of the library supports BLE on Android devices supporting BLE. Our implementation is normally tested on the reference devices for a platform (e.g. Nexus 9 and Nexus 6 for Android 5). As the manufacturer of other Android devices sometimes modify the Android system some, devices may not work as good as the reference devices.
Supported Versions: Android 4.4.4, Android 5.x and Android 6.x


The Windows version of the library is compatible with the Bluetooth Dongle BLED112 from BlueGiga. It is NOT compatible with integrated Bluetooth hardware driven by the Windows driver.

Windows Phone 8.1

The Windows Phone 8.1 version of this library is compatible with the latest release of Windows Phone 8.1 with Bluetooth LE support. Considering the Bluetooth LE device handling of windows phone is different from the other platforms, some functions of the library are not fully supported. E.g scanning for Bluetooth LE devices and disconnecting from a device has to be done in the system settings.

Library Edition

The library exists in tree editions.


The evaluation edition supports all features of the Arendi BleLibrary. The only limitation is that the library can be used only for 2 minutes uninterrupted. A key is not required.


The business edition is limited to be used on one project. This means the, the use of the library is limited to a maximum of two service uuids used in the project. All other services, except the services with 16 bit short uuids defined by the Bluetooth SIG, can not be used. The library has to be unlocked by an individual key.


The enterprise version can be used with no limitations. The library has to be unlocked by an individual key.

Asynchronous Programming Patterns

Most bluetooth operations take some time and are typical asynchronous operations. In the library we support two version of asynchronous programming.

Event-based Asynchronous Pattern (EAP), which requires one or more events, event handler delegate types, and EventArg-derived types. EAP was introduced in the .NET Framework 2.0. It is no longer recommended for new development. In the early versions of the library only EAP was supported. The methods to initiate an EAP operation have no suffix (e.g. "ReadData").

Task-based Asynchronous Pattern (TAP), which uses a single method to represent the initiation and completion of an asynchronous operation. TAP was introduced in the .NET Framework 4 and is the recommended approach to asynchronous programming in the .NET Framework. The async and await keywords add language support for TAP.


The central element of the library is the central implementation (see ICentral). To get a central object the CentralFactory methods must be used. To discover visible peripherals the scanning has be started in the central. Every time a peripheral (see IPeripheral) is discovered a event with the advertisement information is sent to the application.

The received peripherals can be connected. After establishing a connection the services (see IService) can be discovered. The characteristics (see ICharacteristic) of the found services can be read, written or monitored by enabling notification if there value changes.

Optional is the use of the EnhancedPeripheral and the PeripheralManager. The EnhancedPeripheral contains a higher level peripheral handling with integrated connection management. To simplify the management of the visible and connected peripherals the PeripheralManager may be used.

Class Diagram

Class Diagram