# Flutter

## \[6.24.0] - 31 Mar 2026

#### Changed

* Updated the Sentiance Android SDK dependency to v6.24. See [here](https://docs.sentiance.com/important-topics/sdk/android#id-6.22.0-6-feb-2026) for the changes introduced in this SDK version.
* Updated the Sentiance iOS SDK dependency to v6.24. See [here](https://docs.sentiance.com/important-topics/sdk/ios#id-6.22.0-6-feb-2026) for the changes introduced in this SDK version.

## \[6.23.1] - 9 Mar 2026

#### Fixed

* iOS build failure due to an inexhaustive switch statement in the Driving Insights plugin.&#x20;

## \[6.23.0] - 27 Feb 2026

#### Added

* A new "idle" transport mode, representing a short period of inactivity.

#### Changed

* Updated the Sentiance Android SDK dependency to v6.23. See [here](https://docs.sentiance.com/important-topics/sdk/android#id-6.22.0-6-feb-2026) for the changes introduced in this SDK version.
* Updated the Sentiance iOS SDK dependency to v6.23. See [here](https://docs.sentiance.com/important-topics/sdk/ios#id-6.22.0-6-feb-2026) for the changes introduced in this SDK version.

## \[6.22.0] - 9 Feb 2026

#### Changed

* Updated the Sentiance Android SDK dependency to v6.22. See [here](https://docs.sentiance.com/important-topics/sdk/android#id-6.22.0-6-feb-2026) for the changes introduced in this SDK version.
* Updated the Sentiance iOS SDK dependency to v6.22. See [here](https://docs.sentiance.com/important-topics/sdk/ios#id-6.22.0-6-feb-2026) for the changes introduced in this SDK version.

## \[6.21.0] - 6 Jan 2026

#### Added

* Ability to subscribe for trip location updates. See [`startReceivingTripLocationUpdates()`](https://pub.dev/documentation/sentiance_event_timeline/latest/sentiance_event_timeline/SentianceEventTimeline/startReceivingTripLocationUpdates.html) .

#### Changed

* Updated the Sentiance Android SDK dependency to v6.21. See [here](https://app.gitbook.com/o/-LTy4edtsWdQgbEsKB-i/s/B9ZHBaHKglgKmgIlyHT0/~/edit/~/changes/254/important-topics/sdk/changelog/android#id-6.21.0-6-jan-2026) for the changes introduced in this SDK version.
* Updated the Sentiance iOS SDK dependency to v6.21. See [here](https://app.gitbook.com/o/-LTy4edtsWdQgbEsKB-i/s/B9ZHBaHKglgKmgIlyHT0/~/edit/~/changes/254/important-topics/sdk/changelog/ios#id-6.21.0-6-jan-2026) for the changes introduced in this SDK version.

## \[6.20.0] - 4 Dec 2025

#### Added

* A new [attention score](https://pub.dev/documentation/sentiance_driving_insights/latest/sentiance_driving_insights/SafetyScores/attentionScore.html) was added to the driving insights safety scores. This score combines [phone calls](https://pub.dev/documentation/sentiance_driving_insights/latest/sentiance_driving_insights/CallEvent-class.html) and [phone usages](https://pub.dev/documentation/sentiance_driving_insights/latest/sentiance_driving_insights/PhoneUsageEvent-class.html) during transports to determine attentiveness.&#x20;
* [CallEvent](https://pub.dev/documentation/sentiance_driving_insights/latest/sentiance_driving_insights/CallEvent-class.html) was added as the successor of [CallWhileMovingEvent](https://pub.dev/documentation/sentiance_driving_insights/latest/sentiance_driving_insights/CallWhileMovingEvent-class.html). It includes all existing [CallWhileMovingEvent](https://pub.dev/documentation/sentiance_driving_insights/latest/sentiance_driving_insights/CallWhileMovingEvent-class.html) properties, in addition to a new [hands-free state](https://pub.dev/documentation/sentiance_driving_insights/latest/sentiance_driving_insights/CallEvent/handsFreeState.html).
* [PhoneUsageEvent](https://pub.dev/documentation/sentiance_driving_insights/latest/sentiance_driving_insights/PhoneUsageEvent-class.html) now has a new [callState](https://pub.dev/documentation/sentiance_driving_insights/latest/sentiance_driving_insights/PhoneUsageEvent/callState.html) property, indicating whether a phone call was active while the phone was being handled.

#### Changed

* Updated the Sentiance Android SDK dependency to v6.20. See [here](https://docs.sentiance.com/important-topics/sdk/android#id-6.20.0-2-dec-2025) for the changes introduced in this SDK version.
* Updated the Sentiance iOS SDK dependency to v6.20. See [here](https://docs.sentiance.com/important-topics/sdk/ios#id-6.20.0-2-dec-2025) for the changes introduced in this SDK version.

#### Deprecated

* [CallWhileMovingEvent](https://pub.dev/documentation/sentiance_driving_insights/latest/sentiance_driving_insights/CallWhileMovingEvent-class.html) and [getCallWhileMovingEvents()](https://pub.dev/documentation/sentiance_driving_insights/latest/sentiance_driving_insights/SentianceDrivingInsights/getCallWhileMovingEvents.html) have been deprecated. Use [CallEvent](https://pub.dev/documentation/sentiance_driving_insights/latest/sentiance_driving_insights/CallEvent-class.html) and [getCallEvents()](https://pub.dev/documentation/sentiance_driving_insights/latest/sentiance_driving_insights/SentianceDrivingInsights/getCallEvents.html) instead.

## \[6.19.0] - 7 Nov 2025

#### Added

* Ability to submit feedback about vehicle crashes that were detected (or missed) by the Sentiance SDK. Feedback data is shared with Sentiance, and used to analyze incidents and improve the accuracy and reliability of future crash detections. See [`submitVehicleCrashDetectionFeedback`](https://pub.dev/documentation/sentiance_event_timeline/latest/sentiance_event_timeline/SentianceEventTimeline/submitVehicleCrashDetectionFeedback.html).

#### Changed

* Updated the Sentiance Android SDK dependency to v6.19. See [here](#id-6.19.0-7-nov-2025) for the changes introduced in this SDK version.
* Updated the Sentiance iOS SDK dependency to v6.19. See [here](#id-6.19.0-7-nov-2025) for the changes introduced in this SDK version.

## \[6.18.0] - 30 Sep 2025

#### Added

* A new `getWrongWayDrivingEvents` function, which returns wrong way driving events for a given transport.
* `SafetyScores` has been updated to include the new `wrongWayDrivingScore`.
* `VehicleCrashDetectionState` has been updated to include a new state, to indicate rejection due to bad location accuracy before an impact.
* Extend the Android `InitializationResult`  type with the missing init info.

#### Changed

* Updated the Sentiance Android SDK dependency to v6.18. See [here](#id-6.18.0-30-sep-2025) for the changes introduced in this SDK version.
* Updated the Sentiance iOS SDK dependency to v6.18. See [here](#id-6.18.0-30-sep-2025) for the changes introduced in this SDK version.

## \[6.17.0] - 29 Aug 2025

#### Changed

* Updated the Sentiance Android SDK dependency to v6.17. See [here](https://docs.sentiance.com/important-topics/sdk/android#id-6.17.0-28-aug-2025) for the changes introduced in this SDK version.
* Updated the Sentiance iOS SDK dependency to v6.17. See [here](https://docs.sentiance.com/important-topics/sdk/ios#id-6.17.0-28-aug-2025) for the changes introduced in this SDK version.

## \[6.16.0] - 31 Jul 2025

{% hint style="warning" %}

## **Behaviour changes**

#### Android: Listener Plugin Registration

Previously, calling Sentiance's native `initializeListener` APIs created a Dart environment **and auto-registered all of your app's plugins**, so that you could use third-party plugins inside Sentiance's Dart callbacks.

Starting with v6.16.0, **no plugins are registered by default** inside Sentiance listeners. This aligns our Android and iOS plugins, and reduces unnecessary plugin registration overhead.

**Action required**

When initializing a Sentiance listener, **explicitly register the third-party plugins** your callback uses. For setup details and code examples, see [this integration guide](https://docs.sentiance.com/a-complete-integration/flutter-quick-start/registering-bg-listeners#declare-3rd-party-plugins) (step 3).
{% endhint %}

#### Added

* Missing SDK status fields.
* Provide an additional callback parameter to the native `initializeListener` APIs to enable clients to manually register plugins on background isolates.

#### Changed

* Updated the Sentiance Android SDK dependency to v6.16. See [here](https://docs.sentiance.com/important-topics/sdk/android#id-6.16.0-31-jul-2025) for the changes introduced in this SDK version.
* Updated the Sentiance iOS SDK dependency to v6.16. See [here](https://docs.sentiance.com/important-topics/sdk/ios#id-6.16.0-31-jul-2025) for the changes introduced in this SDK version.
* Updated the smart geofence `initializeListener` native iOS API to return a `FlutterEngine` similar to the other APIs.
* Disabled automatic plugin registration in Android, when calling `initializeListener`. Plugins must now be manually registered. See [here](https://docs.sentiance.com/a-complete-integration/flutter-quick-start/registering-bg-listeners#declare-3rd-party-plugins).

## \[6.15.0] - 11 Jul 2025

#### Added

* `detectorMode` field to the `CrashEvent`,  which indicates the crash detection mode that was active when the crash event was detected. See [CrashEvent](https://pub.dev/documentation/sentiance_crash_detection/latest/sentiance_crash_detection/CrashEvent-class.html).

#### Changed

* Updated the Sentiance Android SDK dependency to v6.15. See [here](https://docs.sentiance.com/important-topics/sdk/android#id-6.14.0-28-may-2025) for the changes introduced in this SDK version.
* Updated the Sentiance iOS SDK dependency to v6.15. See [here](https://docs.sentiance.com/important-topics/sdk/ios#id-6.14.0-28-may-2025) for the changes introduced in this SDK version.

## \[6.14.0] - 17 Jun 2025

#### Added

* Added the `canMonitorGeofences` field to the SDK status.

#### Changed

* Changed the minimum Flutter version required from `3.3.0` to `3.22.3`.
* Updated the Sentiance Android SDK dependency to v6.14. See [here](https://docs.sentiance.com/important-topics/sdk/android#id-6.14.0-28-may-2025) for the changes introduced in this SDK version.
* Updated the Sentiance iOS SDK dependency to v6.14. See [here](https://docs.sentiance.com/important-topics/sdk/ios#id-6.14.0-28-may-2025) for the changes introduced in this SDK version.

## \[6.13.0] - 30 Apr 2025

{% hint style="warning" %}

## **Upcoming changes**

With our next Sentiance Flutter plugin release, v6.14.0, the minimum required Flutter version will be bumped from 3.3.0 to 3.22.3.
{% endhint %}

#### Changed

* For iOS, bumped the deployment target to iOS 13.0.
* For Android, bumped the minimum supported Android API level (minSdkVersion) to 24.
* Updated the Sentiance Android SDK dependency to v6.13. See [here](https://docs.sentiance.com/important-topics/sdk/android#id-6.13.0-30-apr-2025) for the changes introduced by this SDK version.
* Updated the Sentiance iOS SDK dependency to v6.13. See [here](https://docs.sentiance.com/important-topics/sdk/ios#id-6.13.0-30-apr-2025) for the changes introduced by this SDK version.
* For a custom Android notification channel ID, the expected manifest `meta-data` name was changed to `com.sentiance.flutter.core.notification_channel_id` to match our documentation.

## \[6.12.0] - 28 Mar 2025

#### Added

* Severity information to vehicle crash events. See [CrashEvent](https://pub.dev/documentation/sentiance_crash_detection/latest/sentiance_crash_detection/CrashEvent-class.html).

#### Changed

* `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.

#### Fixed

* `null` accuracy value for `CrashEvent`s on iOS.

## \[6.11.1] - 11 Mar 2025

#### Fixed

* Exception when using 3rd party plugins (that require registration) in the body of Dart listeners set in `background.dart` .

## \[6.11.0] - 28 Feb 2025

#### Added

* 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.

#### Changed

* Updated the Sentiance Android SDK dependency to v6.11. See [here](https://docs.sentiance.com/important-topics/sdk/android#id-6.11.0-28-feb-2025) for the changes introduced by this SDK version.
* Updated the Sentiance iOS SDK dependency to v6.11. See [here](https://docs.sentiance.com/important-topics/sdk/ios#id-6.11.0-28-feb-2025) for the changes introduced by this SDK version.

## \[6.10.0] - 7 Feb 2025

{% hint style="warning" %}
**Upcoming Changes in the Next Release**

Starting from `v6.11`, planned for the **end of February** 2025, the following changes will come into effect:

1. **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.
2. **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.
   {% endhint %}

**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.

## \[6.9.2] - 25 November 2024

**Added**

* Accept additional SDK init options on Android and support customizing the SDK's notification.

## \[6.9.1] - 31 October 2024

**Fixed**

* An issue where driving insights' transport events have `null` distance values on iOS.

## \[6.9.0] - 15 October 2024

{% hint style="warning" %}
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 [migration guide](https://docs.sentiance.com/important-topics/appendix/migration-guide/flutter#migrating-from-v0022-to-v690-of-the-sentiance-flutter-sdks).
{% endhint %}

**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 static`registerXXXListener` 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.

## \[0.0.22] - 31 July 2024

**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`)

## \[0.0.21] - 17 July 2024

**Fixed**

* An issue with the Dart API for smart geofences that prevented consumers from accessing smart geofence APIs.

## \[0.0.20] - 16 July 2024

**Added**

* 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 [here](https://docs.sentiance.com/important-topics/appendix/on-device-features#smart-geofences) about the feature and its build dependencies, and [here](https://docs.sentiance.com/important-topics/sdk/howto/utilize-the-smart-geofences-api) for some sample code.

**Changed**

* Updated the Sentiance Android SDK dependency to version 6.8.
* Updated the Sentiance iOS SDK dependency to version 6.8.
