- This is mainly a bugfix release.
- Fixed (Estimote#109): Documentation Bug.
- Fixed (Estimote#117): Crash after update to 0.8 version.
- SDK demos are now using Material Design (h/t @RingoMckraken).
- Small fixes for Eddystone protocol.
- Say hello to Eddystone - an open protocol BLE protocol from Google.
- Estimote Beacons can broadcast Eddystone protocol.
- In order to start playing with Eddystone you need to update firmware of your existing Estimote beacons to
3.1.1
. Easiest way is through Estimote app on Google Play. Than you can change broadcasting scheme on your beacon to Eddystone-URL or Eddystone-UID. - New in SDK:
- find nearby Eddystone beacons (
BeaconManager#startEddystoneScanning
) - configure Eddystone related properties:
- URL property of
Eddystone-URL
(seeBeaconConnection#eddystoneUrl
) - namespace & instance properties of
Eddystone-UID
(seeBeaconConnection#eddystoneNamepsace
,BeaconConnection#eddystoneInstance
)
- URL property of
- configure broadcasting scheme of beacon to
Estimote Default
,Eddystone-UID
orEddystone-URL
(seeBeaconConnection#broadcastingScheme
)
- find nearby Eddystone beacons (
- SDK Examples have been updated to showcase Eddystone support.
- Initial support for nearables. You can discover nearby nearables via
BeaconManager.startNearableDiscovery()
. With nearbles you can read temperature, motion, orientation without need to connect to it. Directly from discoveredNearable
class. - You can change basic & smart power mode in your beacon via
BeaconConnection
. Read more about power modes. android.hardware.bluetooth_le
feature is no longer required- You can also change conditional broadcating in beacon (Flip To Sleep). It is great for development. Read more about Flip To Sleep.
- Breaking changes (1.0 is approaching, bear with us):
- most of
BeaconConnection
s write* methods are gone, they are replaced with more appropriateProperty
class
- most of
// Before
connection.writeMajor(newMajor, callback);
connection.writeMinor(newMinor, callback);
// After: reading
connection.minor().get()
connection.major().get()
// After: writing in batch
connection.edit()
.set(connection.proximityUuid(), newUuid)
.set(connection.major(), newMajor)
.set(connection.minor(), newMinor)
.commit(callback);
- Fixed authentication issues (#111).
- You can update update firmware in Estimote beacons from the SDK. There are several ways to do it:
- Use
BeaconOta
class to perform firmware update on selected beacon. - Use
BeaconConnection#updateBeacon
which triggers update on the beacon. See updated demos to see how it works. - You can also use Estimote app from Play Store to do that.
- Use
- Estimote SDK now includes also
android.permission.ACCESS_NETWORK_STATE
permission to determine internet connectivity. - Breaking changes (please bear with us, we are approaching stable 1.0 release):
BeaconConnection
'sConnectionCallback#onAuthenticated
method does not returnBeaconCharacteristics
object any more. You can read them directly onBeaconConnection
object.- For example read reading broadcasting power is just
connection.getBroadcastingPower()
.
- From now Estimote SDK for Android is distributed as AAR archive rather than jar. That means that you do not need to change your
AndroidManifest.xml
. SDK'sAndroidManifest.xml
will be merged with your application'sAndroidManifest.xml
. See installation guide how to add library to your project. - Welcome back! We have added support for Estimote Cloud. You can access it via
EstimoteCloud
class. Remember first to provide your App ID & App Token from App section of Estimote Cloud viaEstimoteSDK#initialize
method. - From now all connections to beacons needs to be authorized. If a beacon is not registered to your account, you will not be able to connect to it.
- Estimote SDK's
AndroidManifest.xml
usesBLUETOOTH
,BLUETOOTH_ADMIN
andINTERNET
permissions. - Yes, there is single point of initialisation of the SDK.
// App ID & App Token can be taken from App section of Estimote Cloud.
EstimoteSDK.initialize(applicationContext, appId, appToken);
// Optional, debug logging.
EstimoteSDK.enableDebugLogging(true);
-
All exceptions within the SDK has been unified and exposed in
com.estimote.sdk.exception
package. -
That means some breaking changes:
L
class is no longer available, in order to turn on debug logging useEstimoteSDK
class.BeaconConnection.ConnectionCallback
&BeaconConnection.WriteCallback
methods have been changed to contain apropriate exception when happens.
- Fixes Estimote#59: compatibilty with Android L
- Fixes Estimote#55: it is safe to use library from remote process
- CAN BREAK BUILD: MonitoringListener returns list of beacons the triggered enter region event (Estimote#18)
- Better messaging when BeaconManager cannot start service to scan beacons (Estimote#25)
- Fixed bug in SDK when other beacons are around (Estimote#27)
- Introducing ability to change beacon's UUID, major, minor, broadcasting power, advertising interval (see BeaconConnection class).
- Dropping Guava dependency.
- Fixes bug when simulated beacons were not seen even when using Estimote's proximity UUID.
- Background monitoring is more robust and using AlarmService to invoke scanning.
- Default values for background monitoring were changed. Scanning is performed for 5 seconds and then service sleeps for 25 seconds. Those values can be changed with BeaconManager#setBackgroundScanPeriod.
- Beacons reported in RangingListener#onBeaconsDiscovered are sorted by accuracy (estimated distance between device and beacon).
- Bug fixes.
- IMPORTANT: package changes BeaconService is now in
com.estimote.sdk.service service
. You need to update yourAndroidManifest.xml
service definition tocom.estimote.sdk.service.BeaconService
. - Support for monitoring regions in BeaconManager.
- Region class: it is mandatory to provide region id in its constructor. This matches CLRegion/ESTBeaconRegion from iOS.
- Beacon, Region classes now follow Java bean conventions (that is getXXX for accessing properties).
- Debug logging is disabled by default. You can enable it via
com.estimote.sdk.utils.L#enableDebugLogging(boolean)
.
- Initial version.