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à.
Monitoraggio per dispositivi mobili Android SDK
Il tracciamento mobile di Amazon Location SDK fornisce utilità che aiutano a autenticare, acquisire facilmente le posizioni dei dispositivi e inviare aggiornamenti di posizione ad Amazon Location Tracker. SDKSupporta 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.
Il tracciamento Android SDK è disponibile su GitHub: Amazon Location Mobile Tracking SDK per Android
Questa sezione tratta i seguenti argomenti per il tracciamento mobile Android di Amazon LocationSDK:
Argomenti
Installazione
Per installareSDK, 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 il per autenticare e SDK creare l'oggetto: LocationTracker
Nota
Questa procedura presuppone che sia stata importata la libreria menzionata nella Installazione sezione.
-
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é ilLocationCredentialsProvider
parametro è necessario per creare unLocationTracker
oggetto:// Create an authentication helper using credentials from Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
-
Ora, usate il
LocationCredentialsProvider
comando andLocationTrackerConfig
per creare unLocationTracker
oggetto: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
Il sistema di localizzazione mobile Android di Amazon Location SDK 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 SDK tracciamento per dispositivi mobili Android
Il tracciamento mobile Amazon Location SDK per Android include le seguenti funzioni:
-
Classe:
LocationTracker
constructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,trackerName: String)
, oppureconstructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,clientConfig: LocationTrackerConfig)
Questa è una funzione di inizializzazione per creare un
LocationTracker
oggetto. Richiede istanze ditrackerName
eLocationCredentialsProvider
, facoltativamente, un'istanza di.LocationTrackingConfig
Se la configurazione non viene fornita, verrà inizializzata con valori predefiniti. -
Classe:
LocationTracker
start(locationTrackingCallback: LocationTrackingCallback)
Avvia il processo di accesso alla posizione dell'utente e di invio a un localizzatore di localizzazione Amazon.
-
Classe:
LocationTracker
isTrackingInForeground()
Verifica se il tracciamento della posizione è attualmente in corso.
-
Classe:
LocationTracker
stop()
Interrompe il processo di tracciamento della posizione dell'utente.
-
Classe:
LocationTracker
startTracking()
Avvia il processo di accesso alla posizione dell'utente e di invio al AWS tracker.
-
Classe:
LocationTracker
startBackground(mode: BackgroundTrackingMode, serviceCallback: ServiceCallback)
Avvia il processo di accesso alla posizione dell'utente e di invio al AWS tracker mentre l'applicazione è in background. BackgroundTrackingMode ha 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:
LocationTracker
stopBackgroundService()
Interrompe il processo di accesso alla posizione dell'utente e di invio della stessa al AWS tracker mentre l'applicazione è in background.
-
Classe:
LocationTracker
getTrackerDeviceLocation()
Recupera la posizione del dispositivo dai servizi di localizzazione di Amazon.
-
Classe:
LocationTracker
getDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)
Recupera la posizione corrente del dispositivo dal client del fornitore di geolocalizzazione fusa e la carica su Amazon Location tracker.
-
Classe:
LocationTracker
uploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)
Carica la posizione del dispositivo nei servizi di localizzazione Amazon dopo averla filtrata in base ai filtri di posizione configurati.
-
Classe:
LocationTracker
enableFilter(filter: LocationFilter)
Abilita un particolare filtro di posizione.
-
Classe:
LocationTracker
checkFilterIsExistsAndUpdateValue(filter: LocationFilter)
Disabilita un filtro di posizione particolare.
-
Classe:
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())
Questo inizializza il
LocationTrackerConfig
con valori dei parametri definiti dall'utente. Se non viene fornito un valore di parametro, verrà impostato su un valore predefinito. -
Classe:
LocationFilter
shouldUpload(currentLocation: LocationEntry, previousLocation: LocationEntry?): Boolean
LocationFilter
È un protocollo che gli utenti possono implementare per l'implementazione di filtri personalizzati. È necessario implementare lashouldUpload
funzione 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 SDK funzionalità 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()