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
authorization Authorization?
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. Set true 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 a onProviderChange 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 of JobScheduler. Defaults to false.
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 to POST 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