Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev1.6.1

background_location_tracker

Um plug-in do Flutter que permite rastrear a localização em segundo plano para Android e iOS

AndroidiOS
Downloads em 30 dias
830
Curtidas
76
Pontos Pub
150

Instalar pacote

flutter pub add background_location_tracker

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um plugin Flutter que permite rastreamento contínuo de localização em segundo plano para Android e iOS. Ele permite que aplicativos monitorem a localização do usuário mesmo quando o aplicativo não está em uso, tornando-o ideal para aplicativos de fitness, navegação ou logística. O plugin gerencia configurações e permissões específicas de plataforma, garantindo operação confiável em diferentes dispositivos. Integra-se perfeitamente ao ecossistema Flutter e suporta atualizações em tempo real com impacto mínimo na bateria.

Casos de uso

  • Aplicativos de rastreamento de condicionamento físico
  • Monitoramento de entrega e logística
  • Aplicações de geofencing
  • Ferramentas de viagem e navegação
  • Lembretes baseados em localização

Principais recursos

  • Atualizações de localização em segundo plano
  • Suporte multiplataforma (Android e iOS)
  • Baixo consumo de bateria
  • Gerenciamento automático de permissões
  • Transmissão em tempo real de localização

Indicado para

  • Aplicativos que exigem rastreamento contínuo de localização
  • Desenvolvedores construindo serviços conscientes de localização
  • Aplicativos móveis nos setores de transporte ou saúde

Considerações

  • Requer permissão explícita do usuário
  • Pode afetar a vida útil da bateria do dispositivo
  • Configuração específica da plataforma necessária
  • Conformidade com privacidade exigida
  • Limitações de execução em segundo plano no iOS

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

background_location_tracker

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

Build Status Coverage Status pub package

Android Config

Update compile sdk

Compile sdk should be at 29 at least.

android {
  ...
  compileSdkVersion 29
  ...

  defaultConfig {
    ...
    targetSdkVersion 29
    ...
  }
  ...
}

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>

Add the background location updates in xcode

Or add the info to the Info.plist

	<key>UIBackgroundModes</key>
	<array>
		<string>location</string>
	</array>
Update the AppDelegate
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)

        // Register plugins for background execution - this method is deprecated 
        // but kept for backward compatibility
        BackgroundLocationTrackerPlugin.setPluginRegistrantCallback { registry in
            GeneratedPluginRegistrant.register(with: registry)
        }

        return super.application(application, didFinishLaunchingWithOptions: launchOptions)
    }
}

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();
}

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: This plugin now uses Flutter's Plugin V2 embedding pattern (FlutterPluginBinding) so you don't need to set a manual plugin registrant callback.
- iOS: For compatibility with older Flutter versions, the setPluginRegistrantCallback is still available but will be removed in a future version.

If you're using Flutter 1.12 or later, the plugin should work out of the box with the V2 embedding.

Migration Guide

Upgrading from older versions

This plugin has been updated to use the modern Flutter Plugin V2 embedding pattern with FlutterPluginBinding. If you're using Flutter 1.12 or later, you don't need to make any changes to your app's code.

For backward compatibility, the older methods are still available but marked as deprecated:

  • BackgroundLocationTrackerPlugin.setPluginRegistrantCallback on Android
  • BackgroundLocationTrackerPlugin.setPluginRegistrantCallback on iOS

These methods will be removed in a future version of the plugin.

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.