Flutter
Last updated
Last updated
Severity information to vehicle crash events. See .
speedLimitInMps
of a Waypoint
will now return double.infinity
instead of null
, if the waypoint has an unlimited speed limit.
Invalid altitudes for CrashEvent
s are now null
on iOS.
null
accuracy value for CrashEvent
s on iOS.
Exception when using 3rd party plugins (that require registration) in the body of Dart listeners set in background.dart
.
A new isProvisional
property to TimelineEvent
, which indicates whether the event is provisional. A provisional event is identified based on real-time detections, but may change in the near future as more data is collected and processed, to filter out unwanted artifacts. For example, a provisional car transport may get identified, followed by a provisional bus transport. After the full trip is complete, these provisional events may get merged into a single final car event. Currently, provisional events apply only to 'transport' types.
The getTimelineUpdates
and getTimelineEvents
Dart APIs in addition to the native initializeListener
EventTimeline APIs now accept an optional includeProvisionalEvents
parameter for you to specify whether to retrieve/receive all events, including provisional ones.
The requestUserContext
Dart API and the native initializeListener
UserContext APIs now accept an optional includeProvisionalEvents
parameter for you to specify whether to retrieve/receive all events, including provisional ones.
The transportIsProvisional
value has been added to the OccupantRoleFeedbackResult
type. Submitting occupant role feedback for provisional transports is not allowed.
Upcoming Changes in the Next Release
Starting from v6.11
, planned for the end of February 2025, the following changes will come into effect:
Minimum supported iOS version for SDK detections will change from 13.0 to 15.0. You can still target iOS 13.0 for your app builds, however, detection will not be possible, and the SDK initialization will fail.
Minimum Supported Android API level for SDK detections will change from 23 to 24 (i.e. from Android 6 to 7). You can still target API level 23 for your app builds, however, detections will not be possible, and the SDK initialization will fail.
Added
A new driving insights feature for detecting the occupant role of the user during car transports (i.e. driver vs passenger). The occupant role is available at the end of a transport, in the TransportEvent
.
A feedback API, for providing feedback on the detected occupant role of the user during car transports. The feedback is used on the device to improve the accuracy of future detections.
Support for assigning tags to transports. A tag is a key-value which can be assigned to an ongoing or future transport. The tags are included in the retrieved TransportEvent
, after the transport has ended.
Waypoints in phone usage, call-while-moving, and harsh driving events. These waypoints indicate the segments of the transport where the corresponding event occurred. Some waypoints can be synthetic.
A driving insights API for retrieving the average 'overall' safety score of the user, over a period of the last 7, 14, or 30 days.
Type and confidence information to harsh driving events. A type is categorized as acceleration, braking, or cornering.
magnitudeAsDouble
property to harsh driving events.
Added
Accept additional SDK init options on Android and support customizing the SDK's notification.
Fixed
An issue where driving insights' transport events have null
distance values on iOS.
Added
Support for typed errors to be used in try/catch
statements when invoking Sentiance APIs.
Missing isSpeedLimitUnlimited
field to waypoints.
lastUpdateTimeMs
field to transport events.
BREAKING: Include recent events and update criteria information with the user context update delivered to the app via background listeners.
Changed
BREAKING: The following APIs' signature/behavior has changed:
reset()
now returns void
instead of bool
. If the operation succeeds, execution terminates normally. If an error occurs, a ResetError
will be thrown.
submitDetections()
now returns void
instead of bool
. If the operation succeeds, execution terminates normally. If an error occurs, a SubmitDetectionsError
will be thrown.
enableDetections()
now returns void
instead of bool
. If the operation succeeds, execution terminates normally. If an error occurs, an EnableDetectionsError
will be thrown.
enableDetectionsWithExpiryDate()
now returns void
instead of bool
. If the operation succeeds, execution terminates normally. If an error occurs, an EnableDetectionsError
will be thrown.
disableDetections()
now returns void
instead of bool
. If the operation succeeds, execution terminates normally. If an error occurs, a DisableDetectionsError
will be thrown.
createUser()
now throws a UserCreationError
if the operation fails.
requestAccessToken()
now throws a UserAccessTokenError
if the operation fails.
refreshGeofences()
now throws a SmartGeofencesRefreshError
if the operation fails.
requestUserContext()
now throws a RequestUserContextError
if the operation fails.
invokeDummyVehicleCrash()
now returns void
instead of bool
.
BREAKING: Make TimelineEvent
abstract, and introduce 4 inheritor types: TransportEvent
, StationaryEvent
, OffTheGridEvent
, UnknownEvent
.
BREAKING: Registration of all event listeners in Dart code is now ensured via a staticregisterXXXListener
function that is provided by the corresponding plugin class.
BREAKING: The user context update listener now provides update criteria along with user context information.
BREAKING: Segment attribute values are now double
s instead of int
s.
BREAKING: Expose one entry point(library file) per package.
BREAKING: Rename the minTravelledSpeedInMps
and maxTravelledSpeedInMps
fields of CallWhileMovingEvent
s to minTraveledSpeedInMps
and maxTraveledSpeedInMps
, respectively.
getPhoneUsageEvents
, getHarshDrivingEvents
, getCallWhileMovingEvents
, getSpeedingEvents
, getTimelineUpdates
and getTimelineEvents
APIs now return a list of non-nullable events instead of nullable ones.
Removed
BREAKING: getLanguageName
API has been removed.
BREAKING: Multiple duplicate type definitions across all modules.
BREAKING: type
field has been removed from transport events.
Fixed
An issue where speed and speed limit information for waypoints were not being set on iOS.
Added
lastUpdateTimeMs
and venue
information to timeline events.
isSpeedLimitUnlimited
information to waypoints.
Changed
Updated the version of the native iOS modules of all Sentiance packages, to match the version of the Flutter packages themselves. (It was previously set to 0.0.1
).
Updated Android's minSdkVersion
on all packages from 19
to 23
to match the native Sentiance SDK.
Fixed
Set the duration of ongoing timeline events on iOS to nil
(it was previously set to a negative number)
An issue on iOS with all APIs that take an epoch timestamp as argument, where these timestamps were considered to be in seconds instead of milliseconds.
(Impacted plugins: sentiance_core
, sentiance_event_timeline
)
An issue on iOS with some APIs that return data with timestamps, where the said timestamps were being reported in microseconds instead of milliseconds.
(Impacted plugins: sentiance_driving_insights
, sentiance_event_timeline
)
An issue on iOS with some APIs that return data with timestamps, where the said timestamps were being reported in seconds instead of milliseconds.
(Impacted plugins: sentiance_crash_detection
, sentiance_event_timeline
, sentiance_user_context
)
Fixed
An issue with the Dart API for smart geofences that prevented consumers from accessing smart geofence APIs.
Added
Changed
Updated the Sentiance Android SDK dependency to version 6.8.
Updated the Sentiance iOS SDK dependency to version 6.8.
Updated the Sentiance Android SDK dependency to v6.11. See for the changes introduced by this SDK version.
Updated the Sentiance iOS SDK dependency to v6.11. See for the changes introduced by this SDK version.
This release is a major update to the Sentiance Flutter SDK, and includes a number of breaking changes. For reference on how to migrate your integration, check out our .
New sentiance_smart_geofences package to support Smart Geofences. You can use Smart Geofences to monitor points of interest, and get notified of entries and exits. See about the feature and its build dependencies, and for some sample code.