Downloads of v 1.3.1


Average downloads per day


Last published

Share on Social Networks

There is a newer prerelease version of this package available.
See the version list below for details.

ACR Bluetooth LE Reactive Plugin for...


Cross Platform Reactive Bluetooth LE Plugin for Xamarin

Supported Platforms

Android 4.3+

iOS 6+

tvOS (testing)

Mac (Coming Soon)

To install ACR Bluetooth LE Reactive Plugin for Xamarin, run the following command in the Package Manager Console

Install-Package Acr.Ble -Version 1.3.1

Release Notes

[fix][droid] descriptors and characteristic read/writes now adhere to AndroidConfig.WriteOnMainThread
[fix][ios] WhenStatusChanged was causing OnError when a connection failure occurred
[fix][core] BlobWrite will now use proper MTU
[breaking][feature][core] Background scan has been replaced.  The normal scan now takes a configuration.
[feature][core] Get current MTU size
[feature][droid] monitor MTU changes

[feature] ability to open bluetooth settings configuration
[feature] ability to request MTU is now part of device (still only available on droid - but allows for greater flexibility)
[feature][droid] ability to pair with a device
[feature][droid] ability to toggle bluetooth adapter status

[BREAKING] Characteristic/Descriptor Read, Write, and Notification events now return CharacteristicResult that includes the sender characteristic as well as the data
[fix][droid] Write was not broadcasting completion at the right time

[fix] completion of ReadUntil

[feature] IGattCharacteristic.ReadUntil(endBytes) extension method will read in a loop until end bytes detected
[feature][droid] AndroidConfig.MaxTransmissionUnitSize (MTU) can now be set to negotiate MTU upon connections

[fix][droid] write on main thread (can use AndroidConfig.WriteOnMainThread = false, to disable)
[feature] Blob write
[feature] Logging now has deviceconnected/devicedisconnected if you wish to monitor just one of the status'

[fix] ability to check for true WriteNoResponse flags
[fix][droid] ship proper unsubscribe bytes

[fix] logging cleanup
[feature][core] add logging abilities from device reference
[feature][droid] add improved way to deal with Android connection issues (please read docs under Android Troubleshooting)

[fix][core] logging would not hook properly to existing connected devices
[fix][droid] deal with gatt error 133 by delaying service discovery post connection
[workaround] tvOS was having issues. temporarily pulled from nuget

[feature] write without response void method added
[feature] proper equals check for all ble objects

[fix][all] new adapter scans only clear disconnected devices from cache
[feature] Adapter.GetConnectedDevices

[fix][droid] WhenStatusChanged firing on subscription and replays properly
[fix][droid] properly parsing 16 and 32bit UUIDs in advertisement packet

[breaking] WhenActionOccurs renamed to CreateLogger
[fix] ensure WhenScanStatusChanged() broadcasts its current state on registration
Logging now returns actual packet received where applicable

adding tvOS libraries to package (NOT TESTED)
[fix] createconnection properly persists connection now
[fix] more logging and discovery issues
[fix][droid] device.readrssi was not working
[droid] device.whenstatuschanged will now broadcast Connecting/Disconnecting
[droid] advertisement packet now gets all service UUIDs parsed

[fix] Error notifications on read/writes
[fix] Make sure to replay last status for connectable observables
[fix] Service discovery on iOS and Android was not registering subsequent subscriptions properly
[fix][droid] Read/Write callbacks now passing values back properly
[breaking] PersistentConnection is now CreateConnection with improvements to status reporting

Vastly improved logging
Improvements to observable allocations
Improvements in service discovery

[breaking] Change extension method names

[breaking] Characteristic method WhenNotificationOccurs() is now called WhenNotificationReceived().  It also no longer subscribes to notifications.  Use new method SubscribeToNotifications().  WhenNotificationReceived() is for logging purposes

Add heartrate plugin (extension method)
Add super logging plugin (extension method)
Characteristics and Descriptors now have WhenRead/WhenWritten events to monitor calls externally

ScanListen for working with scan results from a background or decoupled component

BackgroundScan added and ScanFilter removed
Multiple entry points can now hook up to scan, but only one will run (connectable refcount observable)

Initial Public Release



Allan Ritchie



Version History

Version Downloads Last updated
ACR Bluetooth LE... 2.0.0-beta4 18 Friday, February 17, 2017
ACR Bluetooth LE... 2.0.0-beta3 41 Tuesday, February 7, 2017
ACR Bluetooth LE... 2.0.0-beta2 30 Tuesday, January 31, 2017
ACR Bluetooth LE... 2.0.0-beta1 46 Friday, January 13, 2017
ACR Bluetooth LE... 1.3.0 41 Wednesday, December 21, 2016
ACR Bluetooth LE... 1.2.0 42 Thursday, December 15, 2016
ACR Bluetooth LE... 1.1.0 97 Wednesday, December 7, 2016
ACR Bluetooth LE... 1.0.8 54 Friday, November 25, 2016
ACR Bluetooth LE... 1.0.7 27 Friday, November 25, 2016
ACR Bluetooth LE... 1.0.6 44 Saturday, November 19, 2016
ACR Bluetooth LE... 1.0.5 51 Saturday, November 12, 2016
ACR Bluetooth LE... 1.0.4 65 Wednesday, November 2, 2016
ACR Bluetooth LE... 1.0.3 58 Monday, October 24, 2016
ACR Bluetooth LE... 1.0.2 51 Thursday, October 20, 2016
ACR Bluetooth LE... 1.0.1 52 Sunday, October 16, 2016
ACR Bluetooth LE... 1.0.0 167 Friday, October 14, 2016
ACR Bluetooth LE... 0.9.9 43 Thursday, October 13, 2016
ACR Bluetooth LE... 0.9.8 59 Saturday, September 24, 2016
ACR Bluetooth LE... 0.9.7 42 Wednesday, September 21, 2016
ACR Bluetooth LE... 0.9.6 45 Tuesday, September 20, 2016
ACR Bluetooth LE... 0.9.5 49 Thursday, September 15, 2016
ACR Bluetooth LE... 0.9.4 39 Thursday, September 15, 2016
ACR Bluetooth LE... 0.9.3 39 Wednesday, September 14, 2016
ACR Bluetooth LE... 0.9.2 39 Tuesday, September 13, 2016
ACR Bluetooth LE... 0.9.1 36 Monday, September 12, 2016
ACR Bluetooth LE... 0.9.0 38 Thursday, September 8, 2016