Flutter Background Location

A Flutter plugin to get location updates in the background for both Android and iOS. Uses CoreLocation for iOS and FusedLocationProvider for Android

  • iOS implementation credit goes to Ali Almoullim (@almoullim)

Getting Started

1: Add this to your package's pubspec.yaml file:

  flutter_background_location: ^0.0.4

2: Install packages from the command line:

$ flutter packages get

Alternatively, your editor might support flutter packages get. Check the docs for your editor to learn more.

How to use

Import the package where you wanna use it.

import 'package:flutter_background_location/flutter_background_location.dart';

Start the location service. This will also ask the user for permission if not asked previously by another package.


getLocationUpdates will trigger everytime the location updates on the device. Provide a callback function to getLocationUpdates to handle location update.

FlutterBackgroundLocation.getLocationUpdates((location) {

location is a Class exposing the following properties.

double latitude;
double longitude;
double altitude;
double bearing;
double accuracy;
double speed;

To stop listening to location changes you can execute.



Complete working application Example


  • Add support for manually asking for permission.
  • Add support for checking the permission status.
  • Add support for getting the last location once without listening to location updates.
  • Add support for chosing the rate at the which the location is fetched based on time and distance.





Foreign Function Interface for interoperability with the C programming language. [...]


HTML elements and other resources for web-based applications that need to interact with the browser and the DOM (Document Object Model). [...]
Low-level support for interoperating with JavaScript. [...]
Utility methods to efficiently manipulate typed JSInterop objects in cases where the name to call is not known at runtime. You should only use these methods when the same effect cannot be achieved with @JS annotations. These methods would be extension methods on JSObject if Dart supported extension methods.