7.0.0
pavel-kuznetsov-hypertrack
released this
26 Sep 17:36
·
40 commits
to master
since this release
We are excited to announce the release of HyperTrack Android SDK 7.0.0, a major update to our location tracking SDK. This release ensures highest tracking performance, reduces deployed app sizes and comes with an improved API to simplify the integrations. We highly recommend upgrading, but please note that there are a few breaking changes. Check the Migration Guide.
Changed
⚠️ WARNING: The device ID will be changed after the update to this version. (fixed in the7.0.8
release)- The Plugin architecture was introduced. It enables the SDK to adapt to different dependencies and add configurable logic. See Plugins page for more details.
- The SDK API was fully redesigned to be more ergonomic and to require less code to use.
- All the API methods can be accessible at any time from any place in the app by calling them on the static HyperTrack class.
- No need to initialize the SDK by setting publishable key. Now set the key in
AndroidManifest
as Applicationmeta-data
entry with keyHyperTrackPublishableKey
.- Example:
<meta-data android:name="HyperTrackPublishableKey" android:value="Put_your_publishable_key_here" />
- Example:
- Minimal required Android SDK level set to API 19.
- Target Android SDK level set to API 31.
- Added support for Android API 33.
Added
- New
locate()
API. Allows to get a one-time location and sends it to the cloud even when the device is not tracking or available. - The SDK is always in sync with our cloud (if internet connection is present), there is no need to call
syncDeviceSettings()
anymore. subscribeToErrors()
to get the errors updates.subscribeToIsAvailable()
to get the availability updates.subscribeToIsTracking()
to get the tracking state updates.subscribeToLocation()
to get the location updates.errors
variable to get the errors state.isTracking
getter/setter to get/set the tracking intent of the device.isAvailable
getter/setter to get/set the availability state of the device.location
variable to get the last known location or error.name
variable to get/set the name associated with the device.metadata
variable to get/set the metadata associated with the device.- The SDK now is working in the
x86
32bit Emulators.
Removed
- Activity permission is no longer required.
HyperTrack.getInstance()
.start()
,stop()
(useisTracking
variable setter instead)setDeviceMetadata()
(usemetadata
variable setter instead)setDeviceName()
(usename
variable setter instead)addTrackingListener()
,removeTrackingListener()
(usesubscribeToIsTracking
,subscribeToErrors
instead).addAvailabilityListener()
,removeAvailabilityListener()
(usesubscribeToIsAvailable
,subscribeToErrors
instead).getLatestLocation()
(uselocation
variable getter instead).getAvailability()
,setAvailability()
(useisAvailable
variable getter/setter instead).getCurrentLocation()
(uselocate
API instead).HyperTrack.getBlockers()
(useerrors
variable instead).setTrackingNotificationConfig()
syncDeviceSettings()
.requestPermissionsIfNecessary()
.backgroundTrackingRequirement()
allowMockLocations()
isRunning()
enableDebugLogging()
.
Fixed
- ANRs caused by
com.hypertrack.sdk.service.HyperTrackSDKFirebaseMessageReceiver
.