- Support multiple services with the same UUID
- Fixed TypeScript types, support Closure Compiler
- Support Android notification queueing
- Make JavaScript compatible with Android 5.1
- Operations are queued per device connection rather than globally on Android
- Use service data if available on Android
- Ensure Android subscriptions are returned in order #419
- Fix issue with writeQ when peripheral disconnects #690
- Add JavaScript helper methods for encoding and decoding Unicode strings
- Fix #retrieveConnected() for Android, Dual Type devices are no longer filtered out. #559
- Add #retrievePeripheralsByAddress() for iOS and OSX
- Remove ACCESS_BACKGROUND_LOCATION permission. Revert changes from v6.1.1. This should be added manually if background permissions are actually needed
- Update types for NotifyParams
- Add #setPin() method for Android
- Add ACCESS_BACKGROUND_LOCATION permission to fix issue with Android target SDK 29
- Allow specifying transport mode for Android
- Add name when advertising
- Force re-discovery when clearCache => true. #634
- Fix ordering issue with notifications
- Potential breaking change - Verify #subscribe() behavior closely!
- Update cordovaDependencies to allow install #632
- Reset isAdvertising flag when Bluetooth resets #302
- Improves writeQ performance #617
- Potentially breaking change, thus the version bump:
- iOS 10 required
- writeQ returns a success callback even with iOS's noResponse type. Ignore callback to keep existing behavior
- Review writeQ section of readme
- Fix NPE in Android #615
- Use fine location permissions to fix scanning in Android 10 #579
- Update types
- Reinitialize gatt server when Bluetooth resets #302
- Remove unnecessary check when advertising
- Add null check when disabling scan on newer Android versions
- Update docs
- Improve connection reliability on Android
- Stop scan when Bluetooth is disabled on Android v6+
- Fix issue when adding descriptors
- Fixed typings
- Add write response error code on Android
- Handle optional name when advertising on iOS
- Fix typescript typings typo
- Allow disable timeout on Android
- Improve Windows support
- Fix typescript typings typo
- Use didReadRSSI
- Allow Windows scanning to be restarted #438
- Allow values to empty on iOS #435
- Fix typescript typings typos
- Add typescript typings
- Update plugin.xml to prevent possible conflicts with other plugins
- Add ability to force rediscover via clearCache parameter (Android) #340
- UUIDs are now always uppercase #337
- Fix issue with discoveredState being null on connect error, which caused NullPointerExceptions #342
- Add ability to auto connect via autoConnect parameter (Android) #333
- Update package.json engines #348
- Fix issue with queuing getting stuck when device disconnects / closes #315
- Added ability to bond/unbond on Android
- wasConnected helper function
- Improved subscribe with Android. No longer need to specify whether notification or indication
- Read, write, subscribe, unsubscribe, readDescriptor, writeDescriptor queueing for Android #263, #153
- Everything now runs on the single WebCore thread with Android. It should prevent issues with race conditions
- Fix issue with writeDescriptor on Android
- Fix issue with UUID validation on iOS
- Fix issue with undefined params obj on startScan on Android.
- Update OS X
- Fix initializePeripheral issue when not passing parameters on iOS.
- OS X support. Central/client role only. Server/peripheral role was killed on newer versions of OS X.
- Support for server/peripheral role on iOS and partially Android.
- Background mode support controlled by other plugins.
- Require Cordova 5+
- Descriptor now includes permissions when discovering on Android...although descriptors never seem to have permissions set.
- Fixed bug with descriptor values being typed wrong. Now value can have a type of data, number or string.
- Fixed bug with write descriptor callback never being returned.
- Fixed bug which allowed Client Configuration Descriptor to be written, which throws an iOS error.
- Normalized write without response behavior. iOS now returns a write success immediately after executing the write.
- Callbacks for discover, services, characteristics, descriptors, rssi, mtu, readDescriptor, writeDescriptor. Basically everything now.
- Some code cleanup
- Added requestLocation function to help enable location on Android 6.0. Location services must be enabled to scan for unpaired devices. #238
- Updated readme with walkthrough example - Thanks normesta
- Added writeQ function for faster writes.
- Updated config.xml to support Windows 10 #242 - Thanks TimBarham
- Fixed issue with requestPermission() causing crash when executed on Android versions prior to 6.0.
- Added ability to check whether location services are enabled or not. Android 6.0 requires location services to be enabled to find unpaired devices.
- Windows API now compliant with v3.
- Fixed issue with API21+ code running on earlier API versions and causing the plugin to crash.
- Removed connecting / disconnecting statuses since they didn't provide much value and complicated the callback logic.
- Shortened serviceUuid, characteristicUuid, descriptorUuid to uuid or service/characteristic/descriptor depending on the context. See the readme for more info.
- Removed error callback from initialize. The success callback will be used to provide enabled or disabled status updates. #227
- Read/Write/Subscribe/Unsubscribe now return the error callback on unexpected disconnects. For example, iOS 9 wouldn't automatically call the error callback for a read operation when unexpectedly disconnected. On iOS 8 and Android, it would. Future versions will add this to other operations like rssi, readDescriptor, writeDescriptor, etc.
- More advertisement data provided on iOS. #110
- Support for new and improved Android scanning. #232 Thanks pscholl
- Fixed bug with scan race condition #223
- Fixed bug where unsubscribe wouldn't throw an error when already unsubscribed and subscribe wouldn't throw an error when already subscribed.
- Fixed bug where error callback was used instead of success callback when the device unexpectedly disconnected. #209
- Fixed bug where non-BLE devices were returned with retrieveConnected on Android
- Added permissions information to Android discovery.
- Updated and simplified Angular wrapper. Timeouts can now specified for almost any type of operation. Improved its example.
- Removed example. Use the Angular wrapper's example instead. Keeping both examples up to date was too time consuming.
- Changed license to MIT.
- Forgot to increment version
- Close can now be called if the device isn't already disconnected.
- Instead of automatically requesting permissions on scan. It can now be done via the hasPermission and requestPermission functions available for Android. This only needs to be done on Android 6.0 / SDK 23.
- Scan now works on Android 6.0, but requires ACCESS_COARSE_LOCATION permission. The permission will be requested when startScan is called. If the permission isn't granted, an error of "permissions" will be returned. #204
- Added information about permissions and targetting SDK 23
- iOS supports Android style discovery #63
- isConnected and isDiscovered now have separate error callbacks
- Added support for NPM
- Allow duplicate advertisements packets in iOS #184
- Change MTU on Android #183 - Needs additional testing
- Issue with RSSI callback missing device information
- Issue when device name is null
- Many updates pertaining to the changes above
- Cleaned up the example app's code, removed jQuery Mobile
- Request connection priority support added on Android although throughput not personally tested by me. Updated documentation and example as well #134 #136
- Retrieve connected support for Android. Some older Android versions / older devices wouldn't include paired devices in a scan. Doesn't support UUID filtering like iOS
- Issue involving status receiver if initialize was passed null (or invalid) parameters #114
- Issue with discovery status after disconnecting and reconnecting without closing on Android #141
- Issue with unexpected disconnect getting stuck on disconnect on Android 5.0+ #139
- Issue with isConnected returning the negated value on IOS #130
- Issue with retrieveConnected in example app
- Updated discovery documentation to include params #137