2.0.0
- Update direct dependency to Multiplatform Ble Adapter
1.1.1
- Update development dependencies
- Add more information to the README and INTRO file.
- Remove
constfrom enum types in the typescript definition file. - Add backpressure buffer for notifications.
1.1.0
- Add support for descriptors.
- Fix XCode 11 compilation error.
1.0.3
- Integrated Travis CI to test library and check its integration with multiple RN versions.
- Library's build.gradle prefers buildToolsVersion, compileSdkVersion & targetSdkVersion specified in rootProject.
- Added Typescript definitions.
- Removed outdated example project.
- Updated dev dependencies and the README file.
1.0.2
- Fix build error due to RN 58 changes.
- Allow registering for notifications and indications on Android despite CCC descriptor being absent.
1.0.1
- Fix possible ConcurrentModificationException in Android BleModule.
- Workaround for when
canSendWriteWithoutResponsewould return false on iOS. - Fixed low severity vulnerabilities reported by npm in development dependencies.
1.0.0
Breaking changes
- Moved to Gradle plugin 3.1.4 and Gradle wrapper to 4.4 (RN 57+ required) on Android.
Other:
- Added
requestConnectionPriorityfunction which increases or decreases connection interval setting on Android Lollipop devices or above. - Added
connectionPriorityoption to connection options which calls above function just after the connection is established. - Added
scanModeandcallbackTypeproperties to scan options for Android. - Added
enableanddisablefunctions to enable/disable Bluetooth on Android. - Added optional
transactionIdargument todiscoverAllServicesAndCharacteristicsForDevice. - Added
errorCodesToMessagesMappingproperty toBleManagerOptionsto be able to override custom BleError messages. - Updated
cancelDeviceConnectiondocumentation. - Don't call CBCentralManager's stopScan, when Bluetooth is powered off in internal implementation on iOS.
- Clean iOS compiler warnings on XCode10.
- Changed scan record logging from Debug to Verbose on iOS.
- Updated
writeWithoutResponseimplementation on iOS to usecanSendWriteWithoutResponseif available starting from iOS 11. - Updated library's development dependencies.
- Fixed cyclic import warnings.
- Fixed notification/indication subscription moment. Events are monitored before CCC is written on Android.
0.10.0
Breaking changes:
-
Deprecate old build system. Carthage is not required anymore. To fix your current project please do following steps:
- Add empty Swift file if you don't have at least one:
- Select File/New/File...
- Choose Swift file and click Next.
- Name it however you want, select your targets and create it.
- Accept to create Objective-C bridging header.
- Remove copy-frameworks script if you don't have any other dependency requiring it:
- Go to Your Target / Build Phases
- Remove run script.
- Add empty Swift file if you don't have at least one:
Other:
- Fix warning when no listeners were attached and events were emitted.
- Show error.message properly. Make sure that invalid errorCodes from implementation side won't trigger another error during construction.
- Property ServiceUUID is properly propagated to IncludedServicesDiscoveryFailed's error message.
- Add missing
deviceServicesNotDiscoveredimplementation on Android.
0.9.2
- Update RxAndroidBle dependency to 1.6.0.
- Propagate
androidErrorCodeproperly forDeviceDisconnectederror.
0.9.1
- Update binary frameworks for XCode 9.4.
0.9.0
Breaking changes:
- Use
error.errorCode == BleErrorCode.OperationCancelledinstead oferror.message == 'Cancelled' - Use
error.errorCode == BleErrorCode.BluetoothManagerDestroyedinstead oferror.message == 'Destroyed' - Reverted implementation of
monitorCharacteristicForDeviceto properly write to descriptor when last listener is unsubscribed on Android. If you expect to get new notifications as soon as you subscribe for them please use version0.8for the time being, as regression is expected.
Other:
- All API calls return
BleErrorinstance in case of errors which contains additional fields:errorCode- returns API independent and stable error code (defined inBleErrorCode).attErrorCode(optional) - platform independent ATT error code.iosErrorCode(optional) - iOS specific error code.androidErrorCode(optional) - Android specific error code.reason(optional) - platform specific message.
- Updated
BleModuleInterfacetype to fix flow errors related to usage. - Added
refreshGattoption toconnectToDevicefunction. - Parse short
localNameadvertisement data type on Android. - Don't emit state changes when BLE is not supported.
- Added
devicesandconnectedDevicesfunctions. - Fixed iOS issue related to
requiresMainQueueSetup. - Added
timeoutoption toconnectToDevice.
Docs:
- Updated dev dependencies to the latest ones.
- Added Expo section to README file.
- Added About this library section to README file.
- Updated Wiki pages
0.8.0
- Fix regression of Base64 encoding on Android platform. When large chunk of Base64 data was sent from Android it contained new lines characters.
- Updated RxAndroidBle to version 1.4.3.
- Fixed colissions in Characteristic and Service id generation on Android. The collisions had place if multiple devices with the same characteristic/service UUIDs were connected at the same time.
- Fixed dropped notifications right after setup on Android. Before there was small window when notification was monitored and listener for it wasn't mounted.
- Minor documentation updates.
0.7.0
Breaking changes:
- Migrate to Swift 4 (now requires XCode 9 or higher)
- Fixed spelling mistake
characteristic.isIndictableis nowcharacteristic.isIndicatable.
Other:
- Fixed potential memory leaks in iOS native module.
- Fixed an issue when successive scans could stop emitting scanned devices.
- Removed
bashdependency in postinstall script. - Use
--cache-buildsoption only when specific version of carthage is available. - Remove
--no-buildoption to be able to reuse prepackages frameworks. - Added option to disable building dynamic frameworks with carthage
by setting option in your app's package.json:
... "react-native-ble-plx": { "carthage": false } ...
0.6.5
- Fixed Null Pointer Exception when called
cancelDeviceConnectionon Android. - Updated gradle version to be able to use latest Android Studio.
- Added Nullable and Nonnull annotations to Android implementation.
0.6.4
- Fail explicitly when carthage fails on postinstall.
- Added
mtuproperty forDeviceobject which allows you to get current BLE MTU of device. - Added function
requestMTUForDevicewhich allows to negotiate BLE MTU of device if it is possible.
0.6.3
- Updated RxBluetoothKit library to version 3.1.1
- Updated RxAndroidBle library to version 1.4.1
- Fixed NullPointerException when calling BLE operations without previous discovery.
- iOS emits values in
monitorCharacteristicForDeviceonly when no reads are pending for specific characteristic. Previously when characteristic was notified and read operation was completed, characteristic value was received both inreadCharacteristicForDeviceandmonitorCharacteristicForDevice. Now it will only be received inreadCharacteristicForDevicepromise.
0.6.2
- Updated RxBluetoothKit library to version 3.0.14 to allow building library on XCode 9.
- Added new
localNameproperty toDeviceobject, which is set when localName is available in device's advertisement data. - Fixed build process on Windows.
- Fixed compatibility with RN 0.47
- Fixed bug when
onDeviceDisconnectedcallback was not called on iOS when Bluetooth was turned off on device. - Updated library setup instructions.
- Added option to cache native libraries built by Carthage.
0.6.1
- Updated RxAndroidBle library to version 1.3.3 which fixes internal issues which may block execution of operation queue.
- Updated dev dependencies to fix latest Flowtype issues.
- Fixed bug when
restoreStateFunctionfunction could be called multiple times on iOS.
0.6.0
- Added basic API to support background mode. When BleManager is constructed you can pass
restoreStateIdentifierandrestoreStateFunctiontoBleManagerOptionsobject to enable support for background mode. More info about usage can be found in documentation. - All subscriptions and promises are properly "Destroyed" when
destory()function is called. - Fixed bug on Android where notification messages could be duplicated or skipped.
- Updated RxAndroidBle to version 1.3
- Updated README file.
- Updated library logo
0.5.0
- Added new API for supporting unique Services and Characteristics:
Characteristic.id,Service.idfields which uniquely identify BLE objects.- All utility functions which don't require UUIDs as arguments are using
internally
idfields and therefore work faster and properly handle services/characteristics with same UUIDs. For example:characteristic.read().
- New option to enable native modules' logging system via
bleManager.setLogLevel()function. - New function to read RSSI for connected devices:
bleManager.readRSSIForDevice(). - Updated RxBluetoothKit dependency to version 3.0.12
- Updated RxAndroidBle dependency to 1.2.2
- Added tests for JS API.
- Better Flow type checking and coverage.
- Documentation was moved to
./docsfolder and now is generated by documentation.js. - Small fixes in examples.
- Updated installation steps.
0.4.0
- Device ID properties were renamed as they are not UUIDs on Android (breaking change):
Device.uuid->Device.idService.deviceUUID->Service.deviceID,Characteristic.deviceUUID->Characteristic.deviceID
- Changed signature of
onDeviceDisconnected, as Device object is always available. - Updated to Swift 3.0
- Updated to RxAndroidBle 1.1.0 and RxBluetoothKit 3.0.6
- Documentation was moved to
./docfolder and now is generated by ESDoc. - Fixed
state()invalid return type. Implementedstate()andonStateChange()for Android. - Added optional parameter to
onStateChange()function. - Fixed
monitorCharacteristicForDevice()for Android when characteristic accepts indications only. - Updated
AndroidManifest.xmlconfiguration.