Background Location Tracker | Coderz Product

background_location_tracker

Last updated:

0 purchases

background_location_tracker Image
background_location_tracker Images

Free

Languages

Categories

Add to Cart

Description:

background location tracker

background_location_tracker #
A new Flutter plugin that allows you to track the background location for Android & iOS



Android Config #
Update compile sdk #
Compile sdk should be at 29 at least.
android {
...
compileSdkVersion 29
...

defaultConfig {
...
targetSdkVersion 29
...
}
...
}
copied to clipboard
iOS Configuration #
Update Info.plist #
Add the correct permission descriptions
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Your description why you should use NSLocationAlwaysAndWhenInUseUsageDescription</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Your description why you should use NSLocationAlwaysAndWhenInUseUsageDescription</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Your description why you should use NSLocationAlwaysAndWhenInUseUsageDescription</string>
copied to clipboard
Add the background location updates in xcode
Or add the info to the Info.plist
<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>
copied to clipboard
Update the AppDelegate #
Make sure you call the setPluginRegistrantCallback so other plugins can be accessed in the background.
import UIKit
import Flutter
import background_location_tracker

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
GeneratedPluginRegistrant.register(with: self)

BackgroundLocationTrackerPlugin.setPluginRegistrantCallback { registry in
GeneratedPluginRegistrant.register(with: registry)
}

return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
copied to clipboard
Flutter implementation #
Make sure you set the @pragma('vm:entry-point') to make sure you can find the callback in release.
@pragma('vm:entry-point')
void backgroundCallback() {
BackgroundLocationTrackerManager.handleBackgroundUpdated(
(data) async => Repo().update(data),
);
}

Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await BackgroundLocationTrackerManager.initialize(
backgroundCallback,
config: const BackgroundLocationTrackerConfig(
loggingEnabled: true,
androidConfig: AndroidConfig(
notificationIcon: 'explore',
trackingInterval: Duration(seconds: 4),
distanceFilterMeters: null,
),
iOSConfig: IOSConfig(
activityType: ActivityType.FITNESS,
distanceFilterMeters: null,
restartAfterKill: true,
),
),
);

runApp(MyApp());
}

Future startLocationTracking() async {
await BackgroundLocationTrackerManager.startTracking();
}

Future stopLocationTracking() async {
await BackgroundLocationTrackerManager.stopTracking();
}

copied to clipboard
FAQ: #
I get a Unhandled Exception: MissingPluginException(No implementation found for method .... on channel ...)
This is mostly caused by a misconfiguration of the plugin:
Android Pre v2 embedding: make sure the plugin registrant callback is set
Android v2 embedding: Log a new github issues. This
iOS: make sure the plugin registrant callback is set
copied to clipboard

License:

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

Files In This Product: (if this is empty don't purchase this product)

Customer Reviews

There are no reviews.