Seguimiento de dispositivos móviles Android SDK - Amazon Location Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Seguimiento de dispositivos móviles Android SDK

El seguimiento móvil de Amazon Location SDK proporciona utilidades que ayudan a autenticar fácilmente, capturar las posiciones de los dispositivos y enviar actualizaciones de posición a los rastreadores de ubicación de Amazon. SDKAdmite el filtrado local de las actualizaciones de ubicación con intervalos de actualización configurables. Esto reduce los costos de datos y optimiza la conectividad intermitente para sus aplicaciones de Android.

El seguimiento de Android SDK está disponible en GitHub: Amazon Location Mobile Tracking SDK para Android. Además, tanto la autenticación móvil como SDK la AWS SDK están disponibles en el repositorio de AWS Maven. El rastreo de Android SDK está diseñado para funcionar con el general AWS SDK.

En esta sección se tratan los siguientes temas para el dispositivo Android de seguimiento móvil de Amazon LocationSDK:

Instalación

Para instalarloSDK, agrega las siguientes líneas a la sección de dependencias de tu archivo build.gradle en 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")

Uso

Este procedimiento te muestra cómo usarlo para autenticar y SDK crear el objeto: LocationTracker

nota

Este procedimiento supone que ha importado la biblioteca mencionada en la Instalación sección.

  1. Importe las siguientes clases en su código:

    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. A continuación, cree unaAuthHelper, ya que el LocationCredentialsProvider parámetro es obligatorio para crear un LocationTracker objeto:

    // Create an authentication helper using credentials from Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
  3. Ahora, usa la LocationCredentialsProvider tecla y LocationTrackerConfig para crear un LocationTracker objeto:

    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, )

Filtros

El Android de seguimiento móvil Amazon Location SDK tiene tres filtros de ubicación integrados.

  • TimeLocationFilter: filtra la ubicación actual que se va a cargar en función de un intervalo de tiempo definido.

  • DistanceLocationFilter: filtra las actualizaciones de ubicación en función de un umbral de distancia especificado.

  • AccuracyLocationFilter: filtra las actualizaciones de ubicación comparando la distancia recorrida desde la última actualización con la precisión de la ubicación actual.

En este ejemplo, se añaden filtros en el LocationTracker momento de la creación:

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, )

Este ejemplo habilita y deshabilita el filtro en tiempo de ejecución conLocationTracker:

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

Funciones de SDK rastreo de dispositivos móviles Android

El seguimiento móvil de Amazon Location SDK para Android incluye las siguientes funciones:

  • Clase: LocationTracker

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

    Se trata de una función inicializadora para crear un LocationTracker objeto. Requiere instancias de trackerName yLocationCredentialsProvider, opcionalmente, una instancia de. LocationTrackingConfig Si no se proporciona la configuración, se inicializará con los valores predeterminados.

  • Clase: LocationTracker

    start(locationTrackingCallback: LocationTrackingCallback)

    Inicia el proceso de acceder a la ubicación del usuario y enviarla a un rastreador de ubicaciones de Amazon.

  • Clase: LocationTracker

    isTrackingInForeground()

    Comprueba si el rastreo de ubicación está actualmente en curso.

  • Clase: LocationTracker

    stop()

    Detiene el proceso de seguimiento de la ubicación del usuario.

  • Clase: LocationTracker

    startTracking()

    Inicia el proceso de acceder a la ubicación del usuario y enviarla al AWS rastreador.

  • Clase: LocationTracker

    startBackground(mode: BackgroundTrackingMode, serviceCallback: ServiceCallback)

    Inicia el proceso de acceder a la ubicación del usuario y enviarla al AWS rastreador mientras la aplicación está en segundo plano. BackgroundTrackingMode tiene las siguientes opciones:

    • ACTIVE_TRACKING: Esta opción realiza un seguimiento activo de las actualizaciones de ubicación de un usuario.

    • BATTERY_SAVER_TRACKING: esta opción rastrea las actualizaciones de ubicación del usuario cada 15 minutos.

  • Clase: LocationTracker

    stopBackgroundService()

    Detiene el proceso de acceder a la ubicación del usuario y enviarla al AWS rastreador mientras la aplicación está en segundo plano.

  • Clase: LocationTracker

    getTrackerDeviceLocation()

    Recupera la ubicación del dispositivo de Amazon Location Services.

  • Clase: LocationTracker

    getDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)

    Recupera la ubicación actual del dispositivo del cliente del proveedor de ubicaciones fusionadas y la carga en el rastreador de ubicaciones de Amazon.

  • Clase: LocationTracker

    uploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)

    Carga la ubicación del dispositivo a Amazon Location Services después de filtrarla en función de los filtros de ubicación configurados.

  • Clase: LocationTracker

    enableFilter(filter: LocationFilter)

    Activa un filtro de ubicación concreto.

  • Clase: LocationTracker

    checkFilterIsExistsAndUpdateValue(filter: LocationFilter)

    Deshabilita un filtro de ubicación en particular.

  • Clase: 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())

    Esto inicializa el LocationTrackerConfig con valores de parámetros definidos por el usuario. Si no se proporciona un valor de parámetro, se establecerá en un valor predeterminado.

  • Clase: LocationFilter

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

    LocationFilterEs un protocolo que los usuarios pueden implementar para la implementación de sus filtros personalizados. Debe implementar la shouldUpload función para comparar la ubicación anterior y actual y devolver si se debe cargar la ubicación actual.

Ejemplos

El siguiente ejemplo de código muestra la SDK funcionalidad de rastreo móvil.

En este ejemplo, se utiliza LocationTracker para iniciar y detener el seguimiento en segundo plano:

// 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()