Tracking auf Android-Handys SDK - Amazon Location Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Tracking auf Android-Handys SDK

Das mobile Tracking von Amazon Location SDK bietet Hilfsprogramme, mit denen Sie sich einfach authentifizieren, Gerätepositionen erfassen und Positionsaktualisierungen an Amazon Location Trackers senden können. Das SDK unterstützt die lokale Filterung von Standortaktualisierungen mit konfigurierbaren Aktualisierungsintervallen. Dies reduziert die Datenkosten und optimiert die intermittierende Konnektivität für Ihre Android-Anwendungen.

Das Android-Tracking SDK ist verfügbar auf GitHub: Amazon Location Mobile Tracking SDK für Android. Darüber hinaus AWS SDK sind sowohl die mobile Authentifizierung SDK als auch die im AWS Maven-Repository verfügbar. Das Android-Tracking SDK ist so konzipiert, dass es mit dem Allgemeinen AWS SDK funktioniert.

In diesem Abschnitt werden die folgenden Themen für das mobile Tracking von Amazon Location für Android behandeltSDK:

Installation

Um das zu installierenSDK, fügen Sie die folgenden Zeilen zum Abschnitt dependencies Ihrer build.gradle-Datei in Android Studio hinzu:

implementation("software.amazon.location:tracking:0.0.1") implementation("software.amazon.location:auth:0.0.1") implementation("com.amazonaws:aws-android-sdk-location:2.72.0")

Verwendung

Dieses Verfahren zeigt Ihnen, wie Sie das Objekt SDK authentifizieren und erstellen können: LocationTracker

Anmerkung

Bei diesem Verfahren wird davon ausgegangen, dass Sie die im Installation Abschnitt erwähnte Bibliothek importiert haben.

  1. Importieren Sie die folgenden Klassen in Ihren Code:

    import software.amazon.location.tracking.LocationTracker import software.amazon.location.tracking.config.LocationTrackerConfig import software.amazon.location.tracking.util.TrackingSdkLogLevel import com.amazonaws.services.geo.AmazonLocationClient import software.amazon.location.auth.AuthHelper import software.amazon.location.auth.LocationCredentialsProvider
  2. Erstellen Sie als Nächstes eineAuthHelper, da der LocationCredentialsProvider Parameter für die Erstellung eines LocationTracker Objekts erforderlich ist:

    // Create an authentication helper using credentials from Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
  3. Verwenden Sie nun das LocationCredentialsProvider und, LocationTrackerConfig um ein LocationTracker Objekt zu erstellen:

    val config = LocationTrackerConfig( trackerName = "MY-TRACKER-NAME", logLevel = TrackingSdkLogLevel.DEBUG, accuracy = Priority.PRIORITY_HIGH_ACCURACY, latency = 1000, frequency = 5000, waitForAccurateLocation = false, minUpdateIntervalMillis = 5000, ) locationTracker = LocationTracker( applicationContext, locationCredentialsProvider, config, )

Filter

Das mobile Tracking Android von Amazon Location SDK verfügt über drei integrierte Standortfilter.

  • TimeLocationFilter: Filtert den aktuellen Standort, der hochgeladen werden soll, auf der Grundlage eines definierten Zeitintervalls.

  • DistanceLocationFilter: Filtert Standortaktualisierungen auf der Grundlage eines angegebenen Entfernungsschwellenwerts.

  • AccuracyLocationFilter: Filtert Standortaktualisierungen, indem die seit der letzten Aktualisierung zurückgelegte Entfernung mit der Genauigkeit des aktuellen Standorts verglichen wird.

In diesem Beispiel werden Filter zum LocationTracker Zeitpunkt der Erstellung hinzugefügt:

val config = LocationTrackerConfig( trackerName = "MY-TRACKER-NAME", logLevel = TrackingSdkLogLevel.DEBUG, accuracy = Priority.PRIORITY_HIGH_ACCURACY, latency = 1000, frequency = 5000, waitForAccurateLocation = false, minUpdateIntervalMillis = 5000, locationFilters = mutableListOf(TimeLocationFilter(), DistanceLocationFilter(), AccuracyLocationFilter()) ) locationTracker = LocationTracker( applicationContext, locationCredentialsProvider, config, )

In diesem Beispiel wird der Filter zur Laufzeit aktiviert und deaktiviert mitLocationTracker:

// To enable the filter locationTracker?.enableFilter(TimeLocationFilter()) // To disable the filter locationTracker?.disableFilter(TimeLocationFilter())

SDKTracking-Funktionen für Android Mobile

Das mobile Tracking von Amazon Location SDK für Android umfasst die folgenden Funktionen:

  • Klasse: LocationTracker

    constructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,trackerName: String), oder constructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,clientConfig: LocationTrackerConfig)

    Dies ist eine Initialisierungsfunktion zum Erstellen eines LocationTracker Objekts. Sie benötigt Instanzen von LocationCredentialsProvider trackerName und optional eine Instanz von. LocationTrackingConfig Wenn die Konfiguration nicht bereitgestellt wird, wird sie mit Standardwerten initialisiert.

  • Klasse: LocationTracker

    start(locationTrackingCallback: LocationTrackingCallback)

    Startet den Prozess, auf den Standort des Benutzers zuzugreifen und ihn an einen Amazon Location Tracker zu senden.

  • Klasse: LocationTracker

    isTrackingInForeground()

    Überprüft, ob die Standortverfolgung gerade läuft.

  • Klasse: LocationTracker

    stop()

    Stoppt das Nachverfolgen des Standorts des Benutzers.

  • Klasse: LocationTracker

    startTracking()

    Startet den Prozess, auf den Standort des Benutzers zuzugreifen und ihn an den AWS Tracker zu senden.

  • Klasse: LocationTracker

    startBackground(mode: BackgroundTrackingMode, serviceCallback: ServiceCallback)

    Startet den Prozess, bei dem auf den Standort des Benutzers zugegriffen und dieser an den AWS Tracker gesendet wird, während sich die Anwendung im Hintergrund befindet. BackgroundTrackingMode hat die folgenden Optionen:

    • ACTIVE_TRACKING: Diese Option verfolgt aktiv die Standortaktualisierungen eines Benutzers.

    • BATTERY_SAVER_TRACKING: Mit dieser Option werden die Standortaktualisierungen des Benutzers alle 15 Minuten nachverfolgt.

  • Klasse: LocationTracker

    stopBackgroundService()

    Stoppt den Zugriff auf den Standort des Benutzers und das Senden an den AWS Tracker, während sich die Anwendung im Hintergrund befindet.

  • Klasse: LocationTracker

    getTrackerDeviceLocation()

    Ruft den Gerätestandort von den Amazon-Ortungsdiensten ab.

  • Klasse: LocationTracker

    getDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)

    Ruft den aktuellen Gerätestandort vom Fused Location Provider-Client ab und lädt ihn auf Amazon Location Tracker hoch.

  • Klasse: LocationTracker

    uploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)

    Lädt den Gerätestandort nach der Filterung anhand der konfigurierten Standortfilter in die Amazon Location Services hoch.

  • Klasse: LocationTracker

    enableFilter(filter: LocationFilter)

    Aktiviert einen bestimmten Standortfilter.

  • Klasse: LocationTracker

    checkFilterIsExistsAndUpdateValue(filter: LocationFilter)

    Deaktivieren Sie einen bestimmten Standortfilter.

  • Klasse: LocationTrackerConfig

    LocationTrackerConfig( // Required var trackerName: String, // Optional var locationFilters: MutableList = mutableListOf( TimeLocationFilter(), DistanceLocationFilter(), ), var logLevel: TrackingSdkLogLevel = TrackingSdkLogLevel.DEBUG, var accuracy: Int = Priority.PRIORITY_HIGH_ACCURACY, var latency: Long = 1000, var frequency: Long = 1500, var waitForAccurateLocation: Boolean = false, var minUpdateIntervalMillis: Long = 1000, var persistentNotificationConfig: NotificationConfig = NotificationConfig())

    Dadurch wird der LocationTrackerConfig mit benutzerdefinierten Parameterwerten initialisiert. Wenn kein Parameterwert angegeben wird, wird er auf einen Standardwert gesetzt.

  • Klasse: LocationFilter

    shouldUpload(currentLocation: LocationEntry, previousLocation: LocationEntry?): Boolean

    Das LocationFilter ist ein Protokoll, das Benutzer für ihre benutzerdefinierte Filter-Implementierung implementieren können. Sie müssen die shouldUpload Funktion implementieren, um den vorherigen und den aktuellen Standort zu vergleichen und herauszufinden, ob der aktuelle Standort hochgeladen werden soll.

Beispiele

Das folgende Codebeispiel zeigt die mobile SDK Tracking-Funktionalität.

Dieses Beispiel verwendet dieLocationTracker, um das Tracking im Hintergrund zu starten und zu beenden:

// For starting the location tracking locationTracker?.startBackground( BackgroundTrackingMode.ACTIVE_TRACKING, object : ServiceCallback { override fun serviceStopped() { if (selectedTrackingMode == BackgroundTrackingMode.ACTIVE_TRACKING) { isLocationTrackingBackgroundActive = false } else { isLocationTrackingBatteryOptimizeActive = false } } }, ) // For stopping the location tracking locationTracker?.stopBackgroundService()