SweetBlue 3.0.2 Release



  • This is essentially another hotfix release to address a couple of bugs that were found recently.

    • SweetBlue now uses Java 8 (was waiting for a bug fix in Android Studio, which is now addressed in 3.2)
    • Bumped compile SDK to 28
    • Fixed issue where the library wasn't enabling indications properly
    • Fixed device state issue when BLE is turned off from outside the app
    • Fixed issue where if a BleDevice doesn't have a ReconnectFilter set explicitly, it wasn't pulling the default from BleManagerConfig/BleDeviceConfig.


  • Could you please update the Sweetblue toolbox to 3.0.2? That way we could validate if errors are bugs or my own implementation errors.



  • Today was a busy day. When 3.0.3 was initially pushed to our Maven server, it somehow jammed up the works, and thus began 5 hours of work. Finally after slaying the Archiva demon, we were able to successfully get the new version up and ready for the masses.

    We'll be adding older versions over the next day, so if there's an older version you need, it will be up soon.

    So onto the changelist!

    • We now have a new kind of API key. This key is meant for licensed customers to be able to deploy debug/alpha/beta versions of their app internally. This key will cause an Exception to be thrown if the app was installed from a public app store (Google, Amazon, Samsung, etc). This key will allow you to use one key for several variations of the app.
      These new keys will only work on 3.0.3 and up.
    • BleDeviceConfig.tryBondingWhileDisconnected_manageOnDisk has been deprecated, and will be removed in the next minor release (3.2.X, so a while away).
    • Fixed an issue where early outs weren't being emitted to the listener when calling enableNotify/disableNotify.
    • Updated some logic when calling update on BleDevices, which eliminates some ASSERT exceptions that would get posted to Logcat. These messages don't apply anymore since moving to version 3.
    • Fixed NPE that could happen when calling ReadWriteEvent.isNull() in certain scenarios.
    • Bumped gradle plugin version to 3.3.0
    • Fixed issue where DeviceReconnectFilter wasn't being used, or honored when it is set via BleDevice.setListener_DeviceReconnect() or BleManager.setListener_DeviceReconnect()
    • Added NoReconnectFilter convenience class if you don't want SweetBlue to reconnect at all.
    • Fixed an issue where SweetBlue would unintentionally spam log messages in certain situations when scanning.
    • Fixed a remote issue where SweetBlue should reconnect, but wouldn't.
    • Added check to see if the BleServer has been instantiated before trying to clean it up (this was causing some exceptions to get printed to logcat).