Config class
Configuration API.
Instances of Config
are consumed by BackgroundGeolocation.ready and BackgroundGeolocation.setConfig.
Example
Config params = new Config(
desiredAccuracy: Config.DESIRED_ACCURACY_HIGH,
distanceFilter: 10.0,
stopOnTerminate: false,
startOnBoot: true,
url: 'http://my.server.com',
params: {
"user_id": 123
},
headers: {
"my-auth-token":"secret-key"
}
);
BackgroundGeolocation.ready(params).then((State state) {
print('[ready] BackgroundGeolocation is configured and ready to use');
BackgroundGeolocation.start();
});
// To modify config after #ready has been executed, use #setConfig
BackgroundGeolocation.setConfig(Config(
headers: {
"my-auth-token": "my-new-secret-key"
}
)).then((State state) {
BackgroundGeolocation.sync();
});
- Implementers
Constructors
-
Config({int? desiredAccuracy, double? distanceFilter, double? stationaryRadius, int? locationTimeout, bool? disableElasticity, double? elasticityMultiplier, int? stopAfterElapsedMinutes, int? geofenceProximityRadius, int? maxMonitoredGeofences, bool? geofenceInitialTriggerEntry, double? desiredOdometerAccuracy, bool? useSignificantChangesOnly, String? locationAuthorizationRequest, bool? isMoving, int? stopTimeout, int? activityRecognitionInterval, int? minimumActivityRecognitionConfidence, bool? disableStopDetection, bool? stopOnStationary, String? url, int? persistMode, String? method, String? httpRootProperty, Map<
String, dynamic> ? params, Map<String, dynamic> ? headers, Map<String, dynamic> ? extras, bool? autoSync, bool? disableAutoSyncOnCellular, bool? disableProviderChangeRecord, int? autoSyncThreshold, bool? batchSync, int? maxBatchSize, String? locationTemplate, String? geofenceTemplate, int? maxDaysToPersist, int? maxRecordsToPersist, String? locationsOrderDirection, int? httpTimeout, Authorization? authorization, bool? stopOnTerminate, bool? startOnBoot, int? heartbeatInterval, List<String> ? schedule, bool? scheduleUseAlarmManager, bool? debug, int? logLevel, int? logMaxDays, bool? reset, bool? pausesLocationUpdatesAutomatically, Map<String, dynamic> ? locationAuthorizationAlert, bool? disableLocationAuthorizationAlert, bool? showsBackgroundLocationIndicator, int? activityType, int? stopDetectionDelay, bool? disableMotionActivityUpdates, bool? preventSuspend, int? locationUpdateInterval, int? fastestLocationUpdateInterval, int? deferTime, bool? allowIdenticalLocations, bool? enableTimestampMeta, int? speedJumpFilter, bool? geofenceModeHighAccuracy, String? triggerActivities, int? motionTriggerDelay, bool? enableHeadless, bool? foregroundService, bool? forceReloadOnLocationChange, bool? forceReloadOnMotionChange, bool? forceReloadOnGeofence, bool? forceReloadOnBoot, bool? forceReloadOnHeartbeat, bool? forceReloadOnSchedule, Notification? notification, int? notificationPriority, String? notificationTitle, String? notificationText, String? notificationColor, String? notificationSmallIcon, String? notificationLargeIcon, String? notificationChannelName, PermissionRationale? backgroundPermissionRationale, TransistorAuthorizationToken? transistorAuthorizationToken})
Properties
- activityRecognitionInterval ↔ int?
-
Controls the sample-rate of the activity-recognition system.
getter/setter pair
- activityType ↔ int?
-
[iOS only]
Presumably, this affects iOS stop-detect algorithm. Apple is vague about what exactly this option does.getter/setter pair - allowIdenticalLocations ↔ bool?
-
[Android only]
Allow recording locations which are duplicates of the previous.getter/setter pair -
Configure the SDK's HTTP service to authenticate with your server (eg: JWT)
getter/setter pair
- autoSync ↔ bool?
-
Immediately upload each recorded location to your configured url.
getter/setter pair
- autoSyncThreshold ↔ int?
-
The minimum number of persisted records the plugin must accumulate before triggering an autoSync action.
getter/setter pair
- backgroundPermissionRationale ↔ PermissionRationale?
-
(Android 11+) Configure the dialog presented to the user when Always location permission is requested.
getter/setter pair
- batchSync ↔ bool?
-
POST multiple locations to your url in a single HTTP request.
getter/setter pair
- debug ↔ bool?
-
Configure the plugin to emit sound effects and local-notifications during development.
getter/setter pair
- deferTime ↔ int?
-
[Android only]
Sets the maximum wait time in milliseconds for location updates.getter/setter pair - desiredAccuracy ↔ int?
-
Specify the desired-accuracy of the geolocation system.
getter/setter pair
- desiredOdometerAccuracy ↔ double?
-
The maximum location accuracy allowed for a location to be used for Location.odometer calculations.
getter/setter pair
- disableAutoSyncOnCellular ↔ bool?
-
Disable autoSync HTTP requests when device is connected to a Cellular connection.
Defaults to
false
. Settrue
to allow autoSync only when device is connected to Wifi.getter/setter pair - disableElasticity ↔ bool?
-
Disable automatic, speed-based distanceFilter scaling.
getter/setter pair
- disableLocationAuthorizationAlert ↔ bool?
-
Disables automatic authorization alert when plugin detects the user has disabled location authorization.
getter/setter pair
- disableMotionActivityUpdates ↔ bool?
-
Disable the plugin requesting "Motion & Fitness" (ios) or "Physical Activity" (android >= 10) authorization from the User.
getter/setter pair
- disableProviderChangeRecord ↔ bool?
-
[Android-only]
Disables the automatic insert of a location record into the SDK's SQLite database and subsequent HTTP upload if configured with Config.url. When aonProviderChange
event fires, the Android SDK has traditionally recorded a location to show exactly when and where the state of location-services was changed (eg: Location-services disabled).getter/setter pair - disableStopDetection ↔ bool?
-
Disable motion-activity related stop-detection.
getter/setter pair
- distanceFilter ↔ double?
-
The minimum distance (measured in meters) a device must move horizontally before an update event is generated.
getter/setter pair
- elasticityMultiplier ↔ double?
-
Controls the scale of automatic speed-based distanceFilter elasticity.
getter/setter pair
- enableHeadless ↔ bool?
-
[Android only]
Enables "Headless" operation allowing you to respond to events after you app has been terminated with stopOnTerminate:false.getter/setter pair - enableTimestampMeta ↔ bool?
-
Enable extra timestamp meta data to be appended to each recorded location, including system-time.
getter/setter pair
-
extras
↔ Map<
String, dynamic> ? -
Optional arbitrary key/values
{}
applied to each recorded location.getter/setter pair - fastestLocationUpdateInterval ↔ int?
-
[Android only]
Explicitly set the fastest interval for location updates, in milliseconds.getter/setter pair - forceReloadOnBoot ↔ bool?
-
@deprecated: Banned in Android 10. Use enableHeadless instead
getter/setter pair
- forceReloadOnGeofence ↔ bool?
-
@deprecated: Banned in Android 10. Use enableHeadless instead
getter/setter pair
- forceReloadOnHeartbeat ↔ bool?
-
@deprecated: Banned in Android 10. Use enableHeadless instead
getter/setter pair
- forceReloadOnLocationChange ↔ bool?
-
@deprecated: Banned in Android 10. Use enableHeadless instead
getter/setter pair
- forceReloadOnMotionChange ↔ bool?
-
@deprecated: Banned in Android 10. Use enableHeadless instead
Force launch your terminated App after a BackgroundGeolocation.onMotionChange event.
getter/setter pair
- forceReloadOnSchedule ↔ bool?
-
@deprecated: Banned in Android 10. Use enableHeadless instead
getter/setter pair
- foregroundService ↔ bool?
-
[Android only]
Configure the plugin service to run as a more robust "Foreground Service".getter/setter pair - geofenceInitialTriggerEntry ↔ bool?
-
When a device is already within a just-created geofence, fire the enter transition immediately.
getter/setter pair
- geofenceModeHighAccuracy ↔ bool?
-
[Android only]
Enable high-accuracy for geofence-only mode (See BackgroundGeolocation.startGeofences).getter/setter pair - geofenceProximityRadius ↔ int?
-
The radius around current location to query for geofences to activate monitoring upon.
getter/setter pair
- geofenceTemplate ↔ String?
-
Optional custom template for rendering
geofence
JSON request data in HTTP requests.getter/setter pair - hashCode → int
-
The hash code for this object.
no setterinherited
-
headers
↔ Map<
String, dynamic> ? -
Optional HTTP headers applied to each HTTP request.
getter/setter pair
- heartbeatInterval ↔ int?
-
Controls the rate (in seconds) the BackgroundGeolocation.onHeartbeat event will fire.
getter/setter pair
- httpRootProperty ↔ String?
-
The root property of the JSON schema where location-data will be attached.
getter/setter pair
- httpTimeout ↔ int?
-
HTTP request timeout in milliseconds.
getter/setter pair
- isMoving ↔ bool?
-
Configure the initial tracking-state after BackgroundGeolocation.start is called.
getter/setter pair
-
locationAuthorizationAlert
↔ Map<
String, dynamic> ? -
[iOS only]
Controls the text-elements of the plugin's location-authorization dialog.getter/setter pair - locationAuthorizationRequest ↔ String?
-
Defines the desired location-authorization request you wish for the user to authorize:
getter/setter pair
- locationsOrderDirection ↔ String?
-
Controls the order that locations are selected from the database (and uploaded to your server).
getter/setter pair
- locationTemplate ↔ String?
-
Optional custom template for rendering
location
JSON request data in HTTP requests.getter/setter pair - locationTimeout ↔ int?
-
The default timeout in seconds when requesting a location before the SDK gives up and fires a LocationError.
getter/setter pair
- locationUpdateInterval ↔ int?
-
[Android only]
Set the desired interval for active location updates, in milliseconds.getter/setter pair - logLevel ↔ int?
-
Controls the volume of recorded events in the plugin's logging database.
getter/setter pair
- logMaxDays ↔ int?
-
Maximum number of days to persist a log-entry in database.
getter/setter pair
- maxBatchSize ↔ int?
-
Controls the number of records attached to each batch HTTP request.
getter/setter pair
- maxDaysToPersist ↔ int?
-
Maximum number of days to store a geolocation in plugin's SQLite database.
getter/setter pair
- maxMonitoredGeofences ↔ int?
-
The maximum number of geofences to monitor at-a-time, overriding the platform default (iOS: 20; Android 100).
NOTE: This option is for specialized use-cases where you wish to monitor LESS THAN the platform maximum. This option should generally not be used.
getter/setter pair
- maxRecordsToPersist ↔ int?
-
Maximum number of records to persist in plugin's SQLite database.
getter/setter pair
- method ↔ String?
-
The HTTP method to use when creating an HTTP request to your configured url.
getter/setter pair
- minimumActivityRecognitionConfidence ↔ int?
-
The minimum motion-activity confidence to conclude a device is moving.
getter/setter pair
- motionTriggerDelay ↔ int?
-
[Android only]
Optionally add a delay in milliseconds to trigger Android into the moving state when Motion API reports the device is moving (eg:on_foot
,in_vehicle
)getter/setter pair - notification ↔ Notification?
-
(Android only) Configure the persistent foreground notification.
getter/setter pair
- notificationChannelName ↔ String?
-
@deprecated. Use Notification.channelName
getter/setter pair
- notificationColor ↔ String?
-
@deprecated. Use Notification.color.
getter/setter pair
- notificationLargeIcon ↔ String?
-
@deprecated. Use Notification.largeIcon.
getter/setter pair
- notificationPriority ↔ int?
-
@deprecated. Use Notification.priority.
getter/setter pair
- notificationSmallIcon ↔ String?
-
@deprecated. Use Notification.smallIcon.
getter/setter pair
- notificationText ↔ String?
-
@deprecated. Use Notification.text.
getter/setter pair
- notificationTitle ↔ String?
-
@deprecated. Use Notification.title.
getter/setter pair
-
params
↔ Map<
String, dynamic> ? -
Optional HTTP
params
appended to the JSON body of each HTTP request.getter/setter pair - pausesLocationUpdatesAutomatically ↔ bool?
-
[iOS only]
Configure iOS location API to never automatically turn off.getter/setter pair - persistMode ↔ int?
-
Allows you to specify which events to persist to the SDK's internal database: locations | geofences | all (default).
getter/setter pair
- preventSuspend ↔ bool?
-
[iOS only]
Prevent iOS from suspending your application in the background after location-services have been switched off.getter/setter pair - reset ↔ bool?
-
Forces BackgroundGeolocation.ready to apply supplied Config with each application launch.
getter/setter pair
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
schedule
↔ List<
String> ? -
Configures an automated, cron-like schedule for the plugin to BackgroundGeolocation.start / BackgroundGeolocation.stop tracking at pre-defined times.
getter/setter pair
- scheduleUseAlarmManager ↔ bool?
-
Android only Force the Android scheduler to use
AlarmManager
(more precise) instead ofJobScheduler
. Defaults tofalse
.getter/setter pair - showsBackgroundLocationIndicator ↔ bool?
-
[iOS Only]
A Boolean indicating whether the status bar changes its appearance when an app uses location services in the background.getter/setter pair - speedJumpFilter ↔ int?
-
Experimental filter to ignore anomalous locations that suddenly jump an unusual distance from last.
The SDK will calculate an apparent speed and distance relative to last known location. If the location suddenly
teleports from last location, it will be ignored.
getter/setter pair
- startOnBoot ↔ bool?
-
Controls whether to resume location-tracking after device is rebooted.
getter/setter pair
- stationaryRadius ↔ double?
-
[iOS only]
The minimum distance the device must move beyond the stationary location for aggressive background-tracking to engage.getter/setter pair - stopAfterElapsedMinutes ↔ int?
-
Automatically BackgroundGeolocation.stop tracking after x minutes.
getter/setter pair
- stopDetectionDelay ↔ int?
-
[iOS only]
Allows the iOS stop-detection system to be delayed from activating.getter/setter pair - stopOnStationary ↔ bool?
-
Automatically BackgroundGeolocation.stop when the stopTimeout elapses.
getter/setter pair
- stopOnTerminate ↔ bool?
-
Controls whether to continue location-tracking after application is terminated.
getter/setter pair
- stopTimeout ↔ int?
-
Minutes to wait in moving state with no movement before considering the device stationary.
getter/setter pair
- transistorAuthorizationToken ↔ TransistorAuthorizationToken?
-
Convenience option to automatically configures the SDK to upload locations to the Transistor Software demo server at http://tracker.transistorsoft.com (or your own local instance of background-geolocation-console)
getter/setter pair
- triggerActivities ↔ String?
-
Configures a comma-separated list of motion-activities which are allow to trigger location-tracking.
⚠️ Warning: Requires that the user grant your app the "Motion/Health" permission.
These are the comma-delimited list of activity-names returned by the
ActivityRecognition
API which will trigger a state-change from stationary to moving. By default, the plugin will trigger on any of the moving-states:getter/setter pair - url ↔ String?
-
Your server
url
where you wish toPOST
locations to.getter/setter pair - useSignificantChangesOnly ↔ bool?
-
Set
true
in order to disable constant background-tracking. Locations will be recorded only periodically.getter/setter pair
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
set(
String key, dynamic value) → Config -
toMap(
) → Map? -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Properties
-
deviceParams
→ Future<
Map< String, dynamic> > -
@deprecated: Use transistorAuthorizationToken
no setter
Constants
- ACTIVITY_TYPE_AIRBORNE → const int
- ACTIVITY_TYPE_AUTOMOTIVE_NAVIGATION → const int
- ACTIVITY_TYPE_FITNESS → const int
- ACTIVITY_TYPE_OTHER → const int
- ACTIVITY_TYPE_OTHER_NAVIGATION → const int
- AUTHORIZATION_STATUS_ALWAYS → const int
- AUTHORIZATION_STATUS_DENIED → const int
- AUTHORIZATION_STATUS_NOT_DETERMINED → const int
- AUTHORIZATION_STATUS_RESTRICTED → const int
- AUTHORIZATION_STATUS_WHEN_IN_USE → const int
- DESIRED_ACCURACY_HIGH → const int
- DESIRED_ACCURACY_LOW → const int
- DESIRED_ACCURACY_LOWEST → const int
- DESIRED_ACCURACY_MEDIUM → const int
- DESIRED_ACCURACY_NAVIGATION → const int
- DESIRED_ACCURACY_VERY_LOW → const int
- LOG_LEVEL_DEBUG → const int
- LOG_LEVEL_ERROR → const int
- LOG_LEVEL_INFO → const int
- LOG_LEVEL_OFF → const int
- LOG_LEVEL_VERBOSE → const int
- LOG_LEVEL_WARNING → const int
- NOTIFICATION_PRIORITY_DEFAULT → const int
- NOTIFICATION_PRIORITY_HIGH → const int
- NOTIFICATION_PRIORITY_LOW → const int
- NOTIFICATION_PRIORITY_MAX → const int
- NOTIFICATION_PRIORITY_MIN → const int
- PERSIST_MODE_ALL → const int
- PERSIST_MODE_GEOFENCE → const int
- PERSIST_MODE_LOCATION → const int
- PERSIST_MODE_NONE → const int