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
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.
-
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
-
A continuación, cree una
AuthHelper
, ya que elLocationCredentialsProvider
parámetro es obligatorio para crear unLocationTracker
objeto:// Create an authentication helper using credentials from Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
-
Ahora, usa la
LocationCredentialsProvider
tecla yLocationTrackerConfig
para crear unLocationTracker
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 bienconstructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,clientConfig: LocationTrackerConfig)
Se trata de una función inicializadora para crear un
LocationTracker
objeto. Requiere instancias detrackerName
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
LocationFilter
Es un protocolo que los usuarios pueden implementar para la implementación de sus filtros personalizados. Debe implementar lashouldUpload
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()