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 móvil iOS 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 costes de datos y optimiza la conectividad intermitente de las aplicaciones iOS.
El seguimiento para iOS SDK está disponible en GitHub: Amazon Location Mobile Tracking SDK para iOS
En esta sección se tratan los siguientes temas para el seguimiento móvil de Amazon Location en iOSSDK:
Instalación
Utilice el siguiente procedimiento para instalar el seguimiento móvil SDK para iOS:
-
En tu proyecto de Xcode, ve a Archivo y selecciona Add Package Dependencies.
-
Escribe lo siguienteURL: https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios/
en la barra de búsqueda y pulsa la tecla Intro. -
Seleccione el
amazon-location-mobile-tracking-sdk-ios
paquete y haga clic en Add Package. -
Seleccione el producto
AmazonLocationiOSTrackingSDK
del paquete y haga clic en Add Package.
Uso
El siguiente procedimiento muestra cómo crear un ayudante de autenticación con las credenciales de Cognito.
-
Tras instalar la biblioteca, debe añadir una o ambas descripciones al archivo
info.plist
:Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description
-
A continuación, importe lo siguiente AuthHelper en su clase:
import AmazonLocationiOSAuthSDKimport AmazonLocationiOSTrackingSDK
-
A continuación, creará un
AuthHelper
objeto y lo utilizará con el AWS SDK, mediante la creación de un ayudante de autenticación con las credenciales de 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)
Filtros
El seguimiento móvil de Amazon Location para iOS 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 seguimiento de iOS Mobile
El seguimiento móvil de Amazon Location SDK para iOS incluye las siguientes funciones:
-
Clase:
LocationTracker
init(provider: LocationCredentialsProvider, trackerName: String, config: LocationTrackerConfig? = nil)
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
setTrackerConfig(config: LocationTrackerConfig)
Esto establece que la configuración del rastreador surta efecto en cualquier momento después de la inicialización del rastreador de ubicación
-
Clase:
LocationTracker
getTrackerConfig()
Esto obtiene la configuración de seguimiento de ubicación para usarla o modificarla en tu aplicación.
Devoluciones:
LocationTrackerConfig
-
Clase:
LocationTracker
getDeviceId()
Obtiene el identificador del dispositivo generado por el rastreador de ubicación.
Devoluciones:
String?
-
Clase:
LocationTracker
startTracking()
Inicia el proceso de acceder a la ubicación del usuario y enviarla al AWS rastreador.
-
Clase:
LocationTracker
resumeTracking()
Reanuda el proceso de acceder a la ubicación del usuario y enviarla al AWS rastreador.
-
Clase:
LocationTracker
stopTracking()
Detiene el proceso de seguimiento de la ubicación del usuario.
-
Clase:
LocationTracker
startBackgroundTracking(mode: BackgroundTrackingMode)
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:
Esta opción no detiene automáticamente las actualizaciones de ubicación. -
BatterySaving:
Esta opción detiene automáticamente las actualizaciones de ubicación -
None:
En general, esta opción desactiva las actualizaciones de ubicación en segundo plano
-
-
Clase:
LocationTracker
resumeBackgroundTracking(mode: BackgroundTrackingMode)
Reanuda 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
stopBackgroundTracking()
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(nextToken: String?, startTime: Date? = nil, endTime: Date? = nil, completion: @escaping (Result<GetLocationResponse, Error>)
Recupera las ubicaciones de seguimiento cargadas para el dispositivo del usuario entre la fecha y la hora de inicio y finalización.
Devoluciones:
Void
-
Clase:
LocationTrackerConfig
init()
Esto inicializa el LocationTrackerConfig con los valores predeterminados.
-
Clase:
LocationTrackerConfig
init(locationFilters: [LocationFilter]? = nil, trackingDistanceInterval: Double? = nil, trackingTimeInterval: Double? = nil, trackingAccuracyLevel: Double? = nil, uploadFrequency: Double? = nil, desiredAccuracy: CLLocationAccuracy? = nil, activityType: CLActivityType? = nil, logLevel: LogLevel? = nil)
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: LocationEntity, previousLocation: LocationEntity?, trackerConfig: LocationTrackerConfig)
LocationFilter
Es un protocolo que los usuarios pueden implementar para la implementación de sus filtros personalizados. Un usuario tendría que implementar unashouldUpload
función para comparar la ubicación anterior y actual y regresar si se debe cargar la ubicación actual.
Ejemplos
En esta sección se detallan ejemplos del uso del seguimiento móvil de Amazon Location SDK para iOS.
nota
Asegúrese de que los permisos necesarios estén establecidos en el info.plist
archivo. Son los mismos permisos que se enumeran en la Uso sección.
El siguiente ejemplo muestra la funcionalidad para rastrear la ubicación del dispositivo y recuperar las ubicaciones rastreadas:
Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description
Comience a rastrear la ubicación:
do { try locationTracker.startTracking() } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Reanude el seguimiento de la ubicación:
do { try locationTracker.resumeTracking() } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Deja de rastrear la ubicación:
locationTracker.stopTracking()
Iniciar el seguimiento en segundo plano:
do { locationTracker.startBackgroundTracking(mode: .Active) // .Active, .BatterySaving, .None } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Reanude el seguimiento en segundo plano:
do { locationTracker.resumeBackgroundTracking(mode: .Active) } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Para detener el seguimiento en segundo plano:
locationTracker.stopBackgroundTracking()
Recupera las ubicaciones rastreadas del dispositivo desde el rastreador:
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) } }) }