- iOS: Properly convert peripheral UUID for isConnected (#1033)
- iOS: Fix support for 16 & 32-bit UUIDs on iOS (#1031, #1032)
- Update ble.js to use require format to improve loading reliability (#1030, #1029) thanks @sithwarrior
- iOS: Improve input validation of UUIDs on iOS to avoid crashes (#1014, #905)
- iOS: Address iOS deprecation warnings & general warnings (#919)
- iOS: Harden up iOS service discovery (#741)
- Android: Tidy up some warnings
- Android: Mark broadcast receivers as exported for Android v34 (#1020)
- More cleanly support isConnected usage with a bool return value #1018 with review from @MaximBelov
- Android: Expose Promise version of
requestMtu
for async/await - Types: Added returned mtu to
requestMtu
success callback thanks #1012 @ksievers-irco
- Android: add isConnectable Property for API26+ (O) #823 (#993) thanks @Gargamil
- Android: Add forceScanFilter option for Android (#989, #987) thanks @younesspotmaster
- iOS: Prevent API warnings on iOS if Bluetooth is disabled during timed scan
- iOS: Ensure scan timeout is cleared and reset when new scans are started
- Android: Ensure scan timeout is cleared and reset when new scans are started
- Standardise all scans to go via scanWithOptions
- Add duration flag (in seconds) to scan with options
- CI: Create GitHub Cordova & Capacitor Actions (#969)
- Documentation: update readme with info for advertisement parsing module
- Documentation: Detail capacitor installation instructions
- Android: Implement manual bond control on #605 #843
- Android: Don't leak refreshDeviceCache callback
- Android: More thoroughly clean up callbacks on device disconnect #954
- Android: Don't disconnect if refreshDeviceCache fails
No changes - republish only
- Android: Fix enable bluetooth permissions on Android 12+ #940 #941 Thanks @samvimes01
- Android: Clear up time-based stopScan when new scan is started #902
- Android: Report if Bluetooth is disabled when scanning/connecting #826
- Android: Restore refreshDeviceCache to 1.3.X functionality (related to #936)
- Android: Prevent various null ref exceptions (#936, #901 #871, #773, #698)
- Android: Document advanced android scan options
- Android: Improve Android 11 background permissions request ordering
- iOS: Make connect failure errors on iOS more concise #933 Thanks @doug-a-brunner
- Android: Exclude ACCESS_BACKGROUND_LOCATION from plugin.xml to avoid complications with Capacitor #928
- Android: Request BLUETOOTH_CONNECT on Android 12+ when device name is requested #924
- Android: Avoid Null reference exceptions in service discovery callbacks
- Documentation & type fixes
- Android: Add support for target SDK version 31 (Android 12) #923 #879 #875 Thanks @LDLCLid3
- Add L2CAP support (minimum iOS 11 & Android 10 required) for connection-oriented Bluetooth streams #812
- Add ble.withPromises.startNotification variant to indicate when notifications are successfully subscribed #903 #95
- Browser: Add support via navigator.Bluetooth #907 #231 Thanks @joeferner
- iOS: More explicitly handle edge cases when starting/stopping notifications on iOS #577 #893
- iOS: Improve ble.write handling when given non-ArrayBuffer types #897 #900
- Android: Report peripherals as disconnected when BLE is turned off #894 #896
- Android: Properly dispose of connected gatts on plugin reset #825 #845
- iOS: Make BLUETOOTH_RESTORE_STATE variable optional
- Android Synchronise access to the gatt during cleanup to avoid null ref errors #799
- Android: Ensure scan settings are correctly applied when permissions are requested
- Android: Correctly set match mode rather than callback type for scanWithOptions
- Android: Align "Not connected" message with iOS #784
- Add typescript definitions for all methods
- Add location state notifications on Android (similar to Bluetooth state notifications)
- Add support for iOS state restoration. This is opt-in, see README for usage details #717
- Turn API misuse warnings on iOS into reported errors to prevent dead scans #828
- Add additional options to startScanWithOptions() on Android #835 Thanks @helllamer
- Fix some instances where the Android command loop locks up #847 #830 Thanks @doug-a-brunner
- Improve documentation around requestConnectionPriority usage #877
- Android has new plugin variable ACCESS_BACKGROUND_LOCATION enable or disable background scanning permissions. Defaults to false. #844 #821 #870 Thanks @marioshtika
- Android updated to BluetoothLeScanner removing deprecated LeScanCallback #796 Thanks @pentabarf
- Android updated to work with android-cordova@8 and android-cordova@9 #819
- iOS has new plugin variable IOS_INIT_ON_LOAD to delay plugin initialization. Defaults to false. #739 #769 Thanks @jospete
- Add new location permssions Android 10 (API29) #771 Thanks @tiagoblackcode, @subratpalhar92 & @QuentinFarizon
- Add setPin method for Android #718 Thanks @untilbit
- Give the user feedback after an MTU size request #715 Thanks @agren
- Add requestConnectionPriority for Android #714 #713 Thanks @agren @vamshik113
- Add sequence numbers to notifications on Android to handle out of order notifications. Android #625 #656 Thanks @timburke
- Location services is now a warning on Android. Add isLocationEnabled() #607 #633 Thanks @doug-a-brunner
- Use printf of cordova for LOG, reuse pattern, improve loop #647 Thanks @ChristianLutz
- Add queueCleanup method to API #695 Thanks @untilbit
- Fix null pointer in onLeScan #500 Thanks @fjms
- Remove cordova-plugin-compat #705 #617
- Fix iOS crash when advertising data contains kCBAdvDataLeBluetoothDeviceAddress #685 #697 Thanks @jospete
- Fix problem with multiple devices and notifications when one device disconnected #674 Thanks @mandrade-digmap
- Add NSBluetoothAlwaysUsageDescription for iOS13 #704 #700 Thanks @favnec5
- Remove lambda from Peripheral.java to maintain 1.6 source compatibility #602
- Remove showBluetoothSettings for iOS #603
- Fix EXC_BAD_ACCESS on iOS #389 Thanks @claudiovolpato
- Return error if bad device id is passed to disconnect #410
- Better error message when location permission is denied Android #218
- Scan returns an error if location services are disabled Android #527
- Improve autoconnect for iOS #599
- Add ble.refreshDeviceCache (Android) #587 Thanks @Domvel
- Add ble.bondedDevices (Android)
- Add ble.connectedPeripheralsWithServices and ble.peripheralsWithIdentifiers (iOS)
- Added un-scanned Peripheral concept on Android #560 Thanks @doug-a-brunner
- Fixed failure to fire callbacks on Android when read or write in flight #561 Thanks @doug-a-brunner
- Fixed dangling promises when reconnecting Android #562 Thanks @doug-a-brunner
- Added error when starting a scan while another is running Android #565 Thanks @doug-a-brunner
- Request MTU Size on Android #568 Thanks @Domvel and @Algoritma
- Don't prompt user to enable Bluetooth on iOS CBCentralManagerOptionShowPowerAlertKey #580 #174 Thanks @H0rst and @cairin @michie
- Implement showBluetoothSettings on iOS #591 Thanks @cairinmichie
- Improve disconnect logic on Android #582
- iOS error #558
- Fix merge conflicts
- Use same characteristic uuid with different service in iOS #349 Thanks @riccardodegan-geekcups
- ble.read() example #346 Thanks @ktemby
- Remove pending stopNotificationCallback for iOS #355 Thanks @legege
- Add missing
resolve
andreject
callbacks to Promise wrapper #360 Thanks @aj-dev - Fix documentation typo #371 Thanks @maxchu2021
- Fix documentation typo #424 Thanks @ChanHyuk-Im
- Fix duplicate symbol when using with with cordova-plugin-ble-peripheral #373 Thanks @lucatorella
- Add admonition about using with beacons #413 Hugh Barnes (hughbris)
- Handle errors in didUpdateValueForCharacteristic #385 Thanks @soyelporras
- Fix spelling error in Android code # Thanks @doug-a-brunner
- cordova-plugin-compat deprecated #466 #483 thanks @ddugue
- Fix NullPointer exception on scan #504
- Fixed deprecated iOS CBPeripheral RSSI calls and build warning #446 Thanks @doug-a-brunner
- Trapped commands that caused iOS API misuse warnings #450 Thanks @doug-a-brunner
- Fire callbacks on iOS when device is disconnecting #451 Thanks @doug-a-brunner
- Fixed NSInvalidArgumentException when 'undefined' passed to plugin cmds #452 Thanks @doug-a-brunner
- Better errors on Android, when trying to read or write to a non-existing service #486 Thanks @ddugue
- Add autoConnect support #499 Thanks @hypersolution1
- Prevents scan from removing connecting Peripherals on Android #315 & #341 Thanks @mebrunet
- Documentation fixes #330 Thanks @motla
- Documenation clarification about Location Services #318 Thanks @petrometro
- Ensure peripheral is connected for startNotification and stopNotification on Android #343
- Error message for Android 4.3 devices that don't support BLE #263 Thanks @PeacePan
- Must call scan before connect. Update documentation #340
- NSBluetoothPeripheralUsageDescription #324 Thanks @timkim
- Call connect failure callback for peripheral if user disables Bluetooth #264
- Fix iOS problem with multiple keys in service data #288 Thanks @senator
- Add errorMessage to JSON object that is returned (to connect failure callback) when a peripheral disconnects
- Call gatt.disconnect() before gatt.close() to get problematic devices to disconnect #221, #254, #214
- Include version of JavaScript API with promises #247 Thanks @kellycampbell
- stopNotification on Android writes DISABLE_NOTIFICATION_VALUE to the descriptor #225 Thanks @zjw1918
- Update advertising data in peripheral while scanning (Android) #253
- Add documentation about receiving notifications in the background on iOS #169
- Add option to report duplicates during scan #172 Thanks @chris-armstrong
- Read RSSI value from an active BLE connection #171 Thanks @chris-armstrong
- Register for callbacks on Bluetooth state change #136 Thanks @rrharvey
- Fix example for write characteristic #195 Thanks @Wynout
- Fix documentation for write & writeWithoutResponse #193 Thanks @blakeparkinson
- Update CC2650 example #200 Thanks @jplourenco
- Connect peripheral with missing ble-flag (Android SDK 23) #226 Thanks @PeacePan
- Fix compile error with Cordova 5.x #219
- Request Permissions for Android 6.0 (API level 23) #182
- Update documentation for isEnabled #170
- Fix compile error with [email protected] #161
- Don't block UI thread on Android when starting scan #121 Thanks @kellycampbell
- Return characteristic even if properties don't match #132 #113 Thanks @kanayo
- StopNotification for Android fixes #51
- Fix conflicts with the BluetoothSerial plugin #114
- Update plugin id for examples
- Fix npm keywords
- Handle services that reuse UUIDs across characteristics #82 #94 Thanks @ggordan
- Disconnect cancels pending connections on iOS #93 Thanks @rrharvey
- Add dummy browser platform implementation for better PhoneGap developer app support #87 #90 Thanks @surajpindoria
- Replace notify in examples with startNotification #63
- Stop notification from stacking on Android #71 Thanks @charlesalton
- Connect failure callback returns the peripheral #16
- Better log message for unsupported iOS hardware #60
- Update bluefruitle example to work with new versions of the hardware
- Change plugin id cordova-plugin-ble-central
- Move to NPM #86
- iOS 9 #62 Thanks Khashayar Pourdeilami
- Add start of WP8 for PGDA
- Remove SDK version from config.xml (user is responsible for adding)
- Add tests for plugin
- Fix BluetoothLE example for Adafruit nRF8001 #57
- Add showBluetoothSettings and enable for Android #43
- Update documentation about UUIDs #38
- startNotification handles both notifications and indications
- Add startScan and stopScan #40
- Update to RFduino example
- Change Android behavior for leScan without service list
- Remove NO_RESULT on iOS fixes #32
- Ensure connect success callback is only called 1x on iOS #30
- Rename notify to startNotification
- Add stopNotification (iOS only)
- Return reason code when write fails on iOS #29
- Return advertising data in scan results #6, #7, #18
- Connect success returns service, characteristic and descriptor info #6
- iOS connectCallbackId is stored in Peripheral #17
- Move plugin directory to top level for phonegap build compatibility #20
- Rename writeCommand to writeWithoutResponse #21
- Services callback latch is per peripheral #19
- Connect callback is per peripheral #17
- Fix iOS crash when scanning 2x #5
- Add ble.isEnabled method #11
- Add RedBearLab example
- Add BatteryService example
- iOS - fix bug read callback was being called 2x
- iOS - fix bug write callback wasn't being called
initial release