background_location

Creator: coderz1093

Last updated:

Add to Cart

Description:

background location

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.13.0
copied to clipboard
2: Install packages from the command line:
$ flutter packages get
copied to clipboard
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';
copied to clipboard
Request permissions from the user. You can use permission_handler for this
Set the notification title, message and icon (Android only). Use await or .then if you wanna start the location service immediatly after becuase its an asynchronous method
BackgroundLocation.setAndroidNotification(
title: "Notification title",
message: "Notification message",
icon: "@mipmap/ic_launcher",
);
copied to clipboard
Set the interval between localisations in milliseconds (Android only). Use await or .then if you wanna start the location service immediatly after becuase its an asynchronous method
BackgroundLocation.setAndroidConfiguration(1000);
copied to clipboard
Start the location service. This will also ask the user for permission if not asked previously by another package.
BackgroundLocation.stopLocationService(); //To ensure that previously started services have been stopped, if desired
BackgroundLocation.startLocationService();
copied to clipboard

Note: There is currently an open issue (#10) where, if the location service is started multiple times, the location callback will get called repeatedly. This can be worked around by calling BackgroundLocation.stopLocationService(); to stop any previous running services (such as from a previous run of the app) before starting a new one.

Start location service by specifying distanceFilter. Defaults to 0 if not specified
BackgroundLocation.startLocationService(distanceFilter : 10);
copied to clipboard
You can also force the use of Android LocationManager instead of Google's FusedLocationProvider by setting the forceAndroidLocationManager property to true. If not specified, this defaults to false, which uses FusedLocationProvider if it is available, treating LocationManager as a fallback. This setting has no effect on iOS devices.
BackgroundLocation.startLocationService(forceAndroidLocationManager: true);
copied to clipboard
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);
});
copied to clipboard
location is a Class exposing the following properties.
double latitude;
double longitude;
double altitude;
double bearing;
double accuracy;
double speed;
double time;
bool isMock;
copied to clipboard
To stop listening to location changes you can execute.
BackgroundLocation.stopLocationService();
copied to clipboard
Make sure to delcare all required permissions for both your android and ios app
info.plist
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>This app needs access to location.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>This app needs access to location.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs access to location.</string>
<key>UIBackgroundModes</key>
<array>
<string>fetch</string>
<string>location</string>
</array>
copied to clipboard
AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
copied to clipboard

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.