Background Location
A Flutter plugin to get location updates in the background for both Android and iOS (Requires iOS 10.0+). Uses CoreLocation
for iOS and FusedLocationProvider
for Android
Getting Started
1: Add this to your package's pubspec.yaml file:
dependencies:
background_location: ^0.1.2
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:background_location/background_location.dart';
Request permissions from the user.
BackgroundLocation.getPermissions(
onGranted: () {
// Start location service here or do something else
},
onDenied: () {
// Show a message asking the user to reconsider or do something else
},
)
You can check if you have permissions at anytime with checkPermissions()
BackgroundLocation.checkPermissions().then((status) {
// Check status here
})
Start the location service. This will also ask the user for permission if not asked previously by another package.
BackgroundLocation.startLocationService();
getLocationUpdates
will trigger everytime the location updates on the device. Provide a callback function to getLocationUpdates
to handle location update.
BackgroundLocation.getLocationUpdates((location) {
print(location);
});
location is a Class
exposing the following properties.
double latitude;
double longitude;
double altitude;
double bearing;
double accuracy;
double speed;
double time;
To stop listening to location changes you can execute.
BackgroundLocation.stopLocationService();
Example
Complete working application Example
Todo
- 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.