HyperTrack SDKs work reliably when tracking is disrupted in the life of your users. When building movement-aware applications, it is critical to handle common exceptions that occur when your users are on the move. This doc covers various such scenarios and talks about how our SDK handles them.
What happens when
|App is in the background||SDK seamlessly collects and transmits location and activity data in the background with
|App is killed or swiped up by user||SDK automatically restores connection with server and continues tracking with no movement data lost in case of Android and minimal (up to a minute of) of movement data lost in case of iOS. The movement data loss segment is captured in the Placeline as
|App crashes or is force killed by OS||SDK automatically restores connection with server and continues tracking. The extent of movement data lost depends on the nature of crash or force stop. Typically, tracking resumes when location or activity manager APIs make a callback to the SDK. The movement data loss segment is captured in the Placeline as
|App is force stopped from settings||This applies to Android only. Tracking stops. SDK resumes tracking when user relaunches the app. The movement data loss segment is captured in the Placeline as
|Location is disabled for all apps||SDK sends a
|App is denied location permission||SDK sends a
|App is denied activity permission||This applies to iOS only. SDK sends an
|Device loses network connection||SDK continues tracking offline. Server creates a
|Device is switched to Airplane mode||SDK continues tracking offline. Server creates a
|Device is in low battery mode||SDK sends a
|Device is switched off or restarted||Tracking stops. Server creates a
|Device time is changed||SDK detects the change in device's time settings and the server uses the delta between the device's local time and the server's current time to synchronize automatically. SDK sends a
[info] Consuming SDK events
The SDK events mentioned here are available on the dashboard and on your server in form of webhooks/slack alerts.
[warning] Impact of device losing network connection
Device losing network has no impact on the SDK apart from the HTTP calls. All HTTP calls will fail in absence of network connection and will NOT be retried by the SDK.
[info] Getting device battery status
The device's latest battery status is displayed on the dashboard along with user details. This data is available as
last_batteryin the User entity.
[warning] For password protected devices
For password protected devices, the user needs to unlock the device for the SDK to resume tracking.