arbiter_background_location 1.0.0 copy "arbiter_background_location: ^1.0.0" to clipboard
arbiter_background_location: ^1.0.0 copied to clipboard

A Flutter plugin for background location tracking with Android and iOS support.

Flutter Background Location #

Flutter için arka plan konum takibi yapan plugin. Android ve iOS platformlarında çalışır.

Özellikler #

  • ✅ Arka planda sürekli konum takibi
  • ✅ Android Foreground Service desteği
  • ✅ iOS Background Location Updates
  • ✅ SQLite ile lokal veri saklama
  • ✅ API'ye otomatik senkronizasyon
  • ✅ Stream tabanlı canlı konum yayını
  • ✅ Ayarlanabilir parametreler (interval, distance filter, accuracy)
  • ✅ İnternet yokken kuyruk sistemi

Kurulum #

pubspec.yaml dosyanıza ekleyin:

dependencies:
  arbiter_background_location: ^1.0.0

Kullanım #

Temel Kullanım #

import 'package:arbiter_background_location/arbiter_background_location.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // Plugin'i başlat
  await MyBackgroundGeolocation.initialize();
  
  runApp(MyApp());
}

Konum Takibini Başlatma #

final config = MyBackgroundGeolocationConfig(
  interval: 10000, // 10 saniye
  distanceFilter: 50.0, // 50 metre
  desiredAccuracy: 'HIGH', // HIGH, BALANCED, LOW
  apiUrl: 'https://your-api.com/locations',
  userId: 'user123',
  headers: {
    'Authorization': 'Bearer your-token',
  },
);

await MyBackgroundGeolocation.start(config);

Konum Dinleme #

MyBackgroundGeolocation.onLocation.listen((location) {
  print('Konum: ${location.latitude}, ${location.longitude}');
  print('Doğruluk: ${location.accuracy}m');
  print('Zaman: ${location.timestamp}');
});

Hata Dinleme #

MyBackgroundGeolocation.onError.listen((error) {
  print('Hata: $error');
});

Diğer Fonksiyonlar #

// Mevcut konumu al
final location = await MyBackgroundGeolocation.getCurrentPosition();

// Kayıtlı konumları getir
final locations = await MyBackgroundGeolocation.getLocations(limit: 100);

// API'ye senkronize et
await MyBackgroundGeolocation.sync('https://api.com/locations');

// Takibi durdur
await MyBackgroundGeolocation.stop();

// Konumları temizle
await MyBackgroundGeolocation.clearLocations();

İzinler #

Android #

Plugin otomatik olarak gerekli izinleri ekler:

  • ACCESS_FINE_LOCATION
  • ACCESS_COARSE_LOCATION
  • ACCESS_BACKGROUND_LOCATION
  • FOREGROUND_SERVICE
  • FOREGROUND_SERVICE_LOCATION

iOS #

Info.plist dosyasına otomatik eklenir:

<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>This app needs access to location when open and in the background to track your location for delivery and safety purposes.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs access to location when open to track your location for delivery and safety purposes.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>This app needs access to location in the background to track your location for delivery and safety purposes.</string>
<key>UIBackgroundModes</key>
<array>
    <string>location</string>
    <string>background-processing</string>
</array>

Konfigürasyon #

MyBackgroundGeolocationConfig #

Parametre Tip Varsayılan Açıklama
interval int 10000 Güncelleme aralığı (ms)
distanceFilter double 50.0 Minimum hareket mesafesi (metre)
desiredAccuracy String 'HIGH' Doğruluk seviyesi (HIGH/BALANCED/LOW)
apiUrl String? null API URL'si
userId String? null Kullanıcı ID'si
headers Map<String, String>? null HTTP başlıkları

LocationData #

class LocationData {
  final double latitude;      // Enlem
  final double longitude;     // Boylam
  final double? accuracy;     // Doğruluk (metre)
  final double? altitude;     // Yükseklik
  final double? speed;        // Hız (m/s)
  final double? heading;      // Yön (derece)
  final DateTime timestamp;   // Zaman damgası
  final String? provider;     // Sağlayıcı (Android/iOS)
}

Örnek Uygulama #

example/ klasöründe tam çalışan bir örnek uygulama bulunmaktadır.

Lisans #

MIT License

3
likes
160
points
40
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for background location tracking with Android and iOS support.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, http, shared_preferences, sqflite

More

Packages that depend on arbiter_background_location