Monitoraggio per dispositivi mobili Android SDK - Servizio di posizione Amazon

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. Inoltre, sia l'autenticazione mobile che SDK la AWS SDK sono disponibili nel repository AWS Maven. Il tracciamento Android SDK è progettato per funzionare con il generale. AWS SDK

Questa sezione tratta i seguenti argomenti per il tracciamento mobile Android di Amazon LocationSDK:

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.

  1. 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
  2. Quindi crea unAuthHelper, poiché il LocationCredentialsProvider parametro è necessario per creare un LocationTracker oggetto:

    // Create an authentication helper using credentials from Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
  3. Ora, usate il LocationCredentialsProvider comando and LocationTrackerConfig per creare un LocationTracker 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), oppure constructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,clientConfig: LocationTrackerConfig)

    Questa è una funzione di inizializzazione per creare un LocationTracker oggetto. Richiede istanze di trackerName 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 la shouldUpload 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()