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:
ACCESS_BACKGROUND_LOCATION and ACTIVITY_RECOGNITION in AndroidManifest.xml, and writes <meta-data> tags under <application> for any notification fields you configured.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.<meta-data> at prebuild time. Edit the plugin options and rebuild.