Sentiance Core module for React Native

https://github.com/sentiance/sample-apps-react-native

https://github.com/sentiance/sentiance.sdk.sample-apps-expo

To use the core SDK module, please visit the corresponding API reference page.

This package ships with an Expo config plugin. Add it to your app.json (or app.config.js):

{
"expo": {
"plugins": [
["@sentiance-react-native/core", {
"android": {
"notification": {
"title": "Trip detection running",
"text": "We're recording your drive."
}
}
}]
]
}
}

After changing any plugin option, run npx expo prebuild --clean and rebuild your dev client. Plugin options are baked into native files at prebuild time, so changes do not take effect until you regenerate.

Option Type Default Platforms Description
android.notification.title string App name Android Title of the foreground service notification shown while the SDK is running.
android.notification.text string (native fallback) Android Body of the foreground service notification.
android.notification.icon string (native fallback) Android Drawable resource name. The @drawable/ prefix is added automatically if omitted.
android.notification.channelId string (native fallback) Android Notification channel ID.
android.notification.channelName string (native fallback) Android Notification channel name shown in system settings.
android.notification.id number (native fallback) Android Numeric notification ID for the foreground service notification.

On prebuild, the plugin modifies your native projects:

  • Android. Adds the Sentiance Maven repository to your gradle setup, requests ACCESS_BACKGROUND_LOCATION and ACTIVITY_RECOGNITION in AndroidManifest.xml, and writes <meta-data> tags under <application> for any notification fields you configured.
  • iOS. Merges location, fetch, and processing into UIBackgroundModes, and registers the Sentiance background task identifier under BGTaskSchedulerPermittedIdentifiers.

The plugin auto-registers a lifecycle hook on each platform that initializes the SDK asynchronously at app startup, before the JS bundle runs. Init is non-blocking; gate JS code on SentianceCore.ensureInitialized() before calling SDK APIs.

If you don't use Expo prebuild, this plugin does not run. Wire the SDK manually in MainApplication (Android) or AppDelegate (iOS); see the bare integration guide on the docs site.

  • SentianceCore.ensureInitialized() throws a SdkInitializationError with reason: "NOT_TRIGGERED". The lifecycle hook didn't run. Verify the plugin is listed in your app.json and that you ran prebuild after adding it.
  • Foreground notification copy looks wrong on Android. Notification fields are written to <meta-data> at prebuild time. Edit the plugin options and rebuild.

Index

Enumerations

Classes

Interfaces

Type Aliases

Variables

Functions