Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Come usare il tracciamento SDKs
Questo argomento fornisce informazioni su come utilizzare il monitoraggio SDKs.
L'SDK di tracciamento mobile Amazon Location fornisce utilità che aiutano a autenticare, acquisire le posizioni dei dispositivi e inviare aggiornamenti di posizione ad Amazon Location Tracker con facilità. L'SDK supporta il filtraggio locale degli aggiornamenti di posizione con intervalli di aggiornamento configurabili. Ciò riduce i costi dei dati e ottimizza la connettività intermittente per le applicazioni iOS.
L'SDK di tracciamento iOS è disponibile su GitHub: Amazon Location Mobile Tracking SDK
Questa sezione tratta i seguenti argomenti per l'SDK iOS per il tracciamento mobile di Amazon Location:
Argomenti
Installazione
Utilizza la seguente procedura per installare l'SDK di tracciamento mobile per iOS:
-
Nel tuo progetto Xcode, vai su File e seleziona Add Package Dependencies.
-
Digita il seguente URL: https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios/
nella barra di ricerca e premi il tasto invio. -
Seleziona il
amazon-location-mobile-tracking-sdk-iospacchetto e fai clic su Aggiungi pacchetto. -
Seleziona il prodotto del
AmazonLocationiOSTrackingSDKpacchetto e fai clic su Aggiungi pacchetto.
Utilizzo
La procedura seguente mostra come creare un helper di autenticazione utilizzando le credenziali di Amazon Cognito.
-
Dopo aver installato la libreria, devi aggiungere una o entrambe le descrizioni al file:
info.plistPrivacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description -
Quindi, importali AuthHelper nella tua classe:
import AmazonLocationiOSAuthSDKimport AmazonLocationiOSTrackingSDK -
Quindi creerai un
AuthHelperoggetto e lo utilizzerai con l' AWS SDK, creando un helper di autenticazione utilizzando le credenziali di Amazon Cognito.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)
Filtri
L'SDK iOS per il tracciamento mobile di Amazon Location dispone di tre filtri di posizione integrati.
-
TimeLocationFilter: filtra la posizione corrente da caricare in base a un intervallo di tempo definito. -
DistanceLocationFilter: filtra gli aggiornamenti della posizione in base a una soglia di distanza specificata. -
AccuracyLocationFilter: filtra gli aggiornamenti della posizione confrontando la distanza percorsa dall'ultimo aggiornamento con la precisione della posizione corrente.
Questo esempio aggiunge filtri in LocationTracker al momento della creazione:
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, )
Questo esempio abilita e disabilita il filtro in fase di esecuzione conLocationTracker:
// To enable the filter locationTracker?.enableFilter(TimeLocationFilter()) // To disable the filter locationTracker?.disableFilter(TimeLocationFilter())
Funzioni di tracciamento dell'SDK per dispositivi mobili iOS
L'SDK di tracciamento mobile Amazon Location per iOS include le seguenti funzioni:
-
Classe:
LocationTrackerinit(provider: LocationCredentialsProvider, trackerName: String, config: LocationTrackerConfig? = nil)Questa è una funzione di inizializzazione per creare un
LocationTrackeroggetto. Richiede istanze ditrackerNameeLocationCredentialsProvider, facoltativamente, un'istanza di.LocationTrackingConfigSe la configurazione non viene fornita, verrà inizializzata con valori predefiniti. -
Classe:
LocationTrackersetTrackerConfig(config: LocationTrackerConfig)Questo imposta la configurazione di Tracker in modo che abbia effetto in qualsiasi momento dopo l'inizializzazione del localizzatore di posizione.
-
Classe:
LocationTrackergetTrackerConfig()In questo modo viene ottenuta la configurazione di tracciamento della posizione da utilizzare o modificare nell'app.
Restituisce:
LocationTrackerConfig -
Classe:
LocationTrackergetDeviceId()Ottiene l'ID del dispositivo generato dal localizzatore di posizione.
Restituisce:
String? -
Classe:
LocationTrackerstartTracking()Avvia il processo di accesso alla posizione dell'utente e di invio al AWS tracker.
-
Classe:
LocationTrackerresumeTracking()Riprende il processo di accesso alla posizione dell'utente e di invio della stessa al AWS tracker.
-
Classe:
LocationTrackerstopTracking()Interrompe il processo di tracciamento della posizione dell'utente.
-
Classe:
LocationTrackerstartBackgroundTracking(mode: BackgroundTrackingMode)Avvia il processo di accesso alla posizione dell'utente e di invio al AWS tracker mentre l'applicazione è in background.
BackgroundTrackingModeha le seguenti opzioni:-
Active:Questa opzione non sospende automaticamente gli aggiornamenti della posizione. -
BatterySaving:Questa opzione sospende automaticamente gli aggiornamenti della posizione. -
None:Questa opzione disabilita nel complesso gli aggiornamenti della posizione in background.
-
-
Classe:
LocationTrackerresumeBackgroundTracking(mode: BackgroundTrackingMode)Riprende il processo di accesso alla posizione dell'utente e di invio al AWS tracker mentre l'applicazione è in background.
-
Classe:
LocationTrackerstopBackgroundTracking()Interrompe il processo di accesso alla posizione dell'utente e di invio della stessa al AWS tracker mentre l'applicazione è in background.
-
Classe:
LocationTrackergetTrackerDeviceLocation(nextToken: String?, startTime: Date? = nil, endTime: Date? = nil, completion: @escaping (Result<GetLocationResponse, Error>)Recupera le posizioni di tracciamento caricate per il dispositivo dell'utente tra la data e l'ora di inizio e fine.
Restituisce:
Void -
Classe:
LocationTrackerConfiginit()Questo inizializza LocationTrackerConfig con valori predefiniti.
-
Classe:
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)Questo inizializza il
LocationTrackerConfigcon valori dei parametri definiti dall'utente. Se non viene fornito un valore di parametro, verrà impostato su un valore predefinito. -
Classe:
LocationFiltershouldUpload(currentLocation: LocationEntity, previousLocation: LocationEntity?, trackerConfig: LocationTrackerConfig)LocationFilterÈ un protocollo che gli utenti possono implementare per l'implementazione di filtri personalizzati. Un utente dovrebbe implementare unashouldUploadfunzione per confrontare la posizione precedente e corrente e restituire se la posizione corrente deve essere caricata.
Esempi
Questa sezione descrive alcuni esempi di utilizzo dell'Amazon Location Mobile Tracking SDK per iOS.
Nota
Assicurati che le autorizzazioni necessarie siano impostate nel info.plist file. Queste sono le stesse autorizzazioni elencate nella Utilizzo sezione.
L'esempio seguente illustra la funzionalità per il tracciamento della posizione del dispositivo e il recupero delle posizioni tracciate:
Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description
Inizia a tracciare la posizione:
do { try locationTracker.startTracking() } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Riprendi a tracciare la posizione:
do { try locationTracker.resumeTracking() } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Smetti di tracciare la posizione:
locationTracker.stopTracking()
Inizia il tracciamento in background:
do { locationTracker.startBackgroundTracking(mode: .Active) // .Active, .BatterySaving, .None } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Riprendi il tracciamento in background:
do { locationTracker.resumeBackgroundTracking(mode: .Active) } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Per interrompere il tracciamento in background:
locationTracker.stopBackgroundTracking()
Recupera le posizioni tracciate del dispositivo dal tracker:
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) } }) }
L'SDK di tracciamento mobile Amazon Location fornisce utilità che aiutano a autenticare, acquisire le posizioni dei dispositivi e inviare aggiornamenti di posizione ad Amazon Location Tracker con facilità. L'SDK supporta il filtraggio locale degli aggiornamenti di posizione con intervalli di aggiornamento configurabili. Ciò riduce i costi dei dati e ottimizza la connettività intermittente per le applicazioni Android.
L'SDK di tracciamento Android è disponibile su GitHub: Amazon Location Mobile Tracking SDK
Questa sezione tratta i seguenti argomenti per l'SDK Android per il tracciamento mobile di Amazon Location:
Installazione
Per installare l'SDK, aggiungi le seguenti righe alla sezione delle dipendenze del tuo file build.gradle in Android Studio:
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")
Utilizzo
Questa procedura mostra come utilizzare l'SDK per autenticare e creare l'oggetto: LocationTracker
Nota
Questa procedura presuppone che tu abbia importato la libreria menzionata nella sezione. Installazione
-
Importa le seguenti classi nel tuo codice:
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 -
Quindi crea un
AuthHelper, poiché ilLocationCredentialsProviderparametro è necessario per creare unLocationTrackeroggetto:// Create an authentication helper using credentials from Amazon Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id") -
Ora, usate il
LocationCredentialsProvidercomando andLocationTrackerConfigper creare unLocationTrackeroggetto: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, )
Filtri
L'SDK Android per il tracciamento mobile di Amazon Location dispone di tre filtri di posizione integrati.
-
TimeLocationFilter: filtra la posizione corrente da caricare in base a un intervallo di tempo definito. -
DistanceLocationFilter: filtra gli aggiornamenti della posizione in base a una soglia di distanza specificata. -
AccuracyLocationFilter: filtra gli aggiornamenti della posizione confrontando la distanza percorsa dall'ultimo aggiornamento con la precisione della posizione corrente.
Questo esempio aggiunge filtri in LocationTracker al momento della creazione:
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, )
Questo esempio abilita e disabilita il filtro in fase di esecuzione conLocationTracker:
// To enable the filter locationTracker?.enableFilter(TimeLocationFilter()) // To disable the filter locationTracker?.disableFilter(TimeLocationFilter())
Funzioni di tracciamento Android Mobile SDK
L'SDK di tracciamento mobile Amazon Location per Android include le seguenti funzioni:
-
Classe:
LocationTrackerconstructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,trackerName: String), oppureconstructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,clientConfig: LocationTrackerConfig)Questa è una funzione di inizializzazione per creare un
LocationTrackeroggetto. Richiede istanze ditrackerNameeLocationCredentialsProvider, facoltativamente, un'istanza di.LocationTrackingConfigSe la configurazione non viene fornita, verrà inizializzata con valori predefiniti. -
Classe:
LocationTrackerstart(locationTrackingCallback: LocationTrackingCallback)Avvia il processo di accesso alla posizione dell'utente e di invio della stessa a un localizzatore di localizzazione Amazon.
-
Classe:
LocationTrackerisTrackingInForeground()Verifica se il tracciamento della posizione è attualmente in corso.
-
Classe:
LocationTrackerstop()Interrompe il processo di tracciamento della posizione dell'utente.
-
Classe:
LocationTrackerstartTracking()Avvia il processo di accesso alla posizione dell'utente e di invio al AWS tracker.
-
Classe:
LocationTrackerstartBackground(mode: BackgroundTrackingMode, serviceCallback: ServiceCallback)Avvia il processo di accesso alla posizione dell'utente e di invio al AWS tracker mentre l'applicazione è in background.
BackgroundTrackingModeha le seguenti opzioni:-
ACTIVE_TRACKING: questa opzione tiene traccia attivamente degli aggiornamenti sulla posizione di un utente. -
BATTERY_SAVER_TRACKING: Questa opzione tiene traccia degli aggiornamenti sulla posizione dell'utente ogni 15 minuti.
-
-
Classe:
LocationTrackerstopBackgroundService()Interrompe il processo di accesso alla posizione dell'utente e di invio della stessa al AWS tracker mentre l'applicazione è in background.
-
Classe:
LocationTrackergetTrackerDeviceLocation()Recupera la posizione del dispositivo dai servizi di localizzazione di Amazon.
-
Classe:
LocationTrackergetDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)Recupera la posizione corrente del dispositivo dal client del fornitore di geolocalizzazione fusa e la carica su Amazon Location tracker.
-
Classe:
LocationTrackeruploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)Carica la posizione del dispositivo nei servizi di localizzazione Amazon dopo averla filtrata in base ai filtri di posizione configurati.
-
Classe:
LocationTrackerenableFilter(filter: LocationFilter)Abilita un particolare filtro di posizione.
-
Classe:
LocationTrackercheckFilterIsExistsAndUpdateValue(filter: LocationFilter)Disabilita un filtro di posizione particolare.
-
Classe:
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())Questo inizializza il
LocationTrackerConfigcon valori dei parametri definiti dall'utente. Se non viene fornito un valore di parametro, verrà impostato su un valore predefinito. -
Classe:
LocationFiltershouldUpload(currentLocation: LocationEntry, previousLocation: LocationEntry?): BooleanLocationFilterÈ un protocollo che gli utenti possono implementare per l'implementazione di filtri personalizzati. È necessario implementare lashouldUploadfunzione per confrontare la posizione precedente e quella corrente e restituire se la posizione corrente deve essere caricata.
Esempi
Il seguente esempio di codice mostra la funzionalità dell'SDK di tracciamento mobile.
Questo esempio utilizza LocationTracker per avviare e interrompere il tracciamento in background:
// 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()