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.
So verwenden Sie Tracking SDKs
Dieses Thema enthält Informationen zur Verwendung von Tracking SDKs.
Das Amazon Location Mobile Tracking SDK bietet Dienstprogramme, mit denen Sie sich einfach authentifizieren, Gerätepositionen erfassen und Positionsaktualisierungen an Amazon Location Trackers senden können. Das SDK unterstützt das lokale Filtern von Standortaktualisierungen mit konfigurierbaren Aktualisierungsintervallen. Dies reduziert die Datenkosten und optimiert die intermittierende Konnektivität für Ihre iOS-Anwendungen.
Das iOS-Tracking-SDK ist verfügbar auf GitHub: Amazon Location Mobile Tracking SDK für iOS
In diesem Abschnitt werden die folgenden Themen für das Amazon Location Mobile Tracking iOS SDK behandelt:
Installation
Gehen Sie wie folgt vor, um das Mobile Tracking SDK for iOS zu installieren:
-
Gehen Sie in Ihrem Xcode-Projekt zu Datei und wählen Sie Paketabhängigkeiten hinzufügen.
-
Geben Sie die folgende URL: https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios/
in die Suchleiste ein und drücken Sie die Eingabetaste. -
Wählen Sie das
amazon-location-mobile-tracking-sdk-iosPackage aus und klicken Sie auf Paket hinzufügen. -
Wählen Sie das
AmazonLocationiOSTrackingSDKPaketprodukt aus und klicken Sie auf Package hinzufügen.
Verwendung
Das folgende Verfahren zeigt Ihnen, wie Sie einen Authentifizierungshelfer mit Anmeldeinformationen von Amazon Cognito erstellen.
-
Nach der Installation der Bibliothek müssen Sie Ihrer
info.plistDatei eine oder beide Beschreibungen hinzufügen:Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description -
Als Nächstes importiere das AuthHelper in deine Klasse:
import AmazonLocationiOSAuthSDKimport AmazonLocationiOSTrackingSDK -
Anschließend erstellen Sie ein
AuthHelperObjekt und verwenden es mit dem AWS SDK, indem Sie einen Authentifizierungshelfer mit Anmeldeinformationen von Amazon Cognito erstellen.let authHelper = AuthHelper() let locationCredentialsProvider = authHelper.authenticateWithCognitoUserPool(identityPoolId: "My-Cognito-Identity-Pool-Id", region: "My-region") //example: us-east-1 let locationTracker = LocationTracker(provider: locationCredentialsProvider, trackerName: "My-tracker-name") // Optionally you can set ClientConfig with your own values in either initialize or in a separate function // let trackerConfig = LocationTrackerConfig(locationFilters: [TimeLocationFilter(), DistanceLocationFilter()], trackingDistanceInterval: 30, trackingTimeInterval: 30, logLevel: .debug) // locationTracker = LocationTracker(provider: credentialsProvider, trackerName: "My-tracker-name",config: trackerConfig) // locationTracker.setConfig(config: trackerConfig)
Filter
Das Amazon Location Mobile Tracking iOS 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())
Tracking-Funktionen des iOS Mobile SDK
Das Amazon Location Mobile Tracking SDK for iOS umfasst die folgenden Funktionen:
-
Klasse:
LocationTrackerinit(provider: LocationCredentialsProvider, trackerName: String, config: LocationTrackerConfig? = nil)Dies ist eine Initialisierungsfunktion zum Erstellen eines
LocationTrackerObjekts. Sie benötigt Instanzen vonLocationCredentialsProvidertrackerNameund optional eine Instanz von.LocationTrackingConfigWenn die Konfiguration nicht bereitgestellt wird, wird sie mit Standardwerten initialisiert. -
Klasse:
LocationTrackersetTrackerConfig(config: LocationTrackerConfig)Dadurch wird die Konfiguration von Tracker so eingestellt, dass sie zu jedem Zeitpunkt nach der Initialisierung des Location Trackers wirksam wird.
-
Klasse:
LocationTrackergetTrackerConfig()Dadurch wird die Konfiguration der Standortverfolgung abgerufen, die Sie in Ihrer App verwenden oder ändern können.
Gibt zurück:
LocationTrackerConfig -
Klasse:
LocationTrackergetDeviceId()Ruft die generierte Geräte-ID des Location Trackers ab.
Gibt zurück:
String? -
Klasse:
LocationTrackerstartTracking()Startet den Prozess, auf den Standort des Benutzers zuzugreifen und ihn an den AWS Tracker zu senden.
-
Klasse:
LocationTrackerresumeTracking()Setzt den Vorgang fort, auf den Standort des Benutzers zuzugreifen und ihn an den AWS Tracker zu senden.
-
Klasse:
LocationTrackerstopTracking()Stoppt das Nachverfolgen des Standorts des Benutzers.
-
Klasse:
LocationTrackerstartBackgroundTracking(mode: BackgroundTrackingMode)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.
BackgroundTrackingModehat die folgenden Optionen:-
Active:Diese Option unterbricht Standortaktualisierungen nicht automatisch. -
BatterySaving:Diese Option unterbricht automatisch Standortaktualisierungen. -
None:Mit dieser Option werden Standortaktualisierungen im Hintergrund insgesamt deaktiviert.
-
-
Klasse:
LocationTrackerresumeBackgroundTracking(mode: BackgroundTrackingMode)Setzt den Vorgang fort, auf den Standort des Benutzers zuzugreifen und ihn an den AWS Tracker zu senden, während sich die Anwendung im Hintergrund befindet.
-
Klasse:
LocationTrackerstopBackgroundTracking()Stoppt den Zugriff auf den Standort des Benutzers und das Senden an den AWS Tracker, während sich die Anwendung im Hintergrund befindet.
-
Klasse:
LocationTrackergetTrackerDeviceLocation(nextToken: String?, startTime: Date? = nil, endTime: Date? = nil, completion: @escaping (Result<GetLocationResponse, Error>)Ruft die hochgeladenen Tracking-Standorte für das Gerät des Benutzers zwischen Start- und Enddatum und Uhrzeit ab.
Gibt zurück:
Void -
Klasse:
LocationTrackerConfiginit()Dies initialisiert die LocationTrackerConfig mit Standardwerten.
-
Klasse:
LocationTrackerConfiginit(locationFilters: [LocationFilter]? = nil, trackingDistanceInterval: Double? = nil, trackingTimeInterval: Double? = nil, trackingAccuracyLevel: Double? = nil, uploadFrequency: Double? = nil, desiredAccuracy: CLLocationAccuracy? = nil, activityType: CLActivityType? = nil, logLevel: LogLevel? = nil)Dadurch wird der
LocationTrackerConfigmit benutzerdefinierten Parameterwerten initialisiert. Wenn kein Parameterwert angegeben wird, wird er auf einen Standardwert gesetzt. -
Klasse:
LocationFiltershouldUpload(currentLocation: LocationEntity, previousLocation: LocationEntity?, trackerConfig: LocationTrackerConfig)Das
LocationFilterist ein Protokoll, das Benutzer für ihre benutzerdefinierte Filter-Implementierung implementieren können. Ein Benutzer müsste eineshouldUploadFunktion implementieren, um den vorherigen und den aktuellen Standort zu vergleichen und zurückzukehren, wenn der aktuelle Standort hochgeladen werden soll.
Beispiele
In diesem Abschnitt werden Beispiele für die Verwendung des Amazon Location Mobile Tracking SDK for iOS beschrieben.
Anmerkung
Stellen Sie sicher, dass die erforderlichen Berechtigungen in der info.plist Datei festgelegt sind. Dies sind dieselben Berechtigungen, die im Verwendung Abschnitt aufgeführt sind.
Das folgende Beispiel zeigt die Funktionen zum Verfolgen des Gerätestandorts und zum Abrufen nachverfolgter Standorte:
Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description
Beginnen Sie mit der Standortverfolgung:
do { try locationTracker.startTracking() } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Setze die Verfolgung des Standorts fort:
do { try locationTracker.resumeTracking() } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Beenden Sie die Standortverfolgung:
locationTracker.stopTracking()
Hintergrundverfolgung starten:
do { locationTracker.startBackgroundTracking(mode: .Active) // .Active, .BatterySaving, .None } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Hintergrundverfolgung fortsetzen:
do { locationTracker.resumeBackgroundTracking(mode: .Active) } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Um die Hintergrundverfolgung zu beenden:
locationTracker.stopBackgroundTracking()
Rufen Sie die verfolgten Standorte des Geräts vom Tracker ab:
func getTrackingPoints(nextToken: String? = nil) { let startTime: Date = Date().addingTimeInterval(-86400) // Yesterday's day date and time let endTime: Date = Date() locationTracker.getTrackerDeviceLocation(nextToken: nextToken, startTime: startTime, endTime: endTime, completion: { [weak self] result in switch result { case .success(let response): let positions = response.devicePositions // You can draw positions on map or use it further as per your requirement // If nextToken is available, recursively call to get more data if let nextToken = response.nextToken { self?.getTrackingPoints(nextToken: nextToken) } case .failure(let error): print(error) } }) }
Das Amazon Location Mobile Tracking SDK bietet Dienstprogramme, mit denen Sie sich auf einfache Weise authentifizieren, Gerätepositionen erfassen und Positionsaktualisierungen an Amazon Location Trackers senden können. Das SDK unterstützt das lokale Filtern 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 for Android
In diesem Abschnitt werden die folgenden Themen für das Amazon Location Mobile Tracking Android SDK behandelt:
Installation
Um das SDK zu installieren, fügen Sie dem Abschnitt dependencies Ihrer build.gradle-Datei in Android Studio die folgenden Zeilen 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 SDK verwenden, um das Objekt zu authentifizieren und zu erstellen: LocationTracker
Anmerkung
Bei diesem Verfahren wird davon ausgegangen, dass Sie die im Installation Abschnitt erwähnte Bibliothek importiert haben.
-
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 -
Erstellen Sie als Nächstes eine
AuthHelper, da derLocationCredentialsProviderParameter für die Erstellung einesLocationTrackerObjekts erforderlich ist:// Create an authentication helper using credentials from Amazon Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id") -
Verwenden Sie nun das
LocationCredentialsProviderund,LocationTrackerConfigum einLocationTrackerObjekt 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 Android SDK für mobiles Tracking von Amazon Location 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())
Tracking-Funktionen des Android Mobile SDK
Das Amazon Location Mobile Tracking SDK for Android umfasst die folgenden Funktionen:
-
Klasse:
LocationTrackerconstructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,trackerName: String), oderconstructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,clientConfig: LocationTrackerConfig)Dies ist eine Initialisierungsfunktion zum Erstellen eines
LocationTrackerObjekts. Sie benötigt Instanzen vonLocationCredentialsProvidertrackerNameund optional eine Instanz von.LocationTrackingConfigWenn die Konfiguration nicht bereitgestellt wird, wird sie mit Standardwerten initialisiert. -
Klasse:
LocationTrackerstart(locationTrackingCallback: LocationTrackingCallback)Startet den Prozess, auf den Standort des Benutzers zuzugreifen und ihn an einen Amazon Location Tracker zu senden.
-
Klasse:
LocationTrackerisTrackingInForeground()Überprüft, ob die Standortverfolgung gerade läuft.
-
Klasse:
LocationTrackerstop()Stoppt das Nachverfolgen des Standorts des Benutzers.
-
Klasse:
LocationTrackerstartTracking()Startet den Prozess, auf den Standort des Benutzers zuzugreifen und ihn an den AWS Tracker zu senden.
-
Klasse:
LocationTrackerstartBackground(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.
BackgroundTrackingModehat 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:
LocationTrackerstopBackgroundService()Stoppt den Zugriff auf den Standort des Benutzers und das Senden an den AWS Tracker, während sich die Anwendung im Hintergrund befindet.
-
Klasse:
LocationTrackergetTrackerDeviceLocation()Ruft den Gerätestandort von den Amazon-Ortungsdiensten ab.
-
Klasse:
LocationTrackergetDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)Ruft den aktuellen Gerätestandort vom Fused Location Provider-Client ab und lädt ihn auf Amazon Location Tracker hoch.
-
Klasse:
LocationTrackeruploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)Lädt den Gerätestandort nach der Filterung anhand der konfigurierten Standortfilter in die Amazon Location Services hoch.
-
Klasse:
LocationTrackerenableFilter(filter: LocationFilter)Aktiviert einen bestimmten Standortfilter.
-
Klasse:
LocationTrackercheckFilterIsExistsAndUpdateValue(filter: LocationFilter)Deaktivieren Sie einen bestimmten Standortfilter.
-
Klasse:
LocationTrackerConfigLocationTrackerConfig( // 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
LocationTrackerConfigmit benutzerdefinierten Parameterwerten initialisiert. Wenn kein Parameterwert angegeben wird, wird er auf einen Standardwert gesetzt. -
Klasse:
LocationFiltershouldUpload(currentLocation: LocationEntry, previousLocation: LocationEntry?): BooleanDas
LocationFilterist ein Protokoll, das Benutzer für ihre benutzerdefinierte Filter-Implementierung implementieren können. Sie müssen dieshouldUploadFunktion 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 Funktionalität des Mobile Tracking SDK.
In diesem Beispiel wird das verwendetLocationTracker, 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()