Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Comment utiliser le suivi SDKs
Cette rubrique fournit des informations sur l'utilisation du suivi SDKs.
Le SDK de suivi mobile Amazon Location fournit des utilitaires qui permettent d'authentifier, de capturer les positions des appareils et d'envoyer des mises à jour de position à Amazon Location Trackers en toute simplicité. Le SDK prend en charge le filtrage local des mises à jour de localisation avec des intervalles de mise à jour configurables. Cela permet de réduire les coûts de données et d'optimiser la connectivité intermittente pour vos applications iOS.
Le SDK de suivi iOS est disponible sur GitHub : Amazon Location Mobile Tracking SDK for
Cette section aborde les sujets suivants relatifs au SDK iOS de suivi mobile Amazon Location :
Installation
Pour installer le SDK de suivi mobile pour iOS, procédez comme suit :
-
Dans votre projet Xcode, accédez à Fichier et sélectionnez Ajouter des dépendances de package.
-
Tapez l'URL suivante : https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios/
dans la barre de recherche et appuyez sur la touche Entrée. -
Sélectionnez le
amazon-location-mobile-tracking-sdk-ios
package et cliquez sur Ajouter un package. -
Sélectionnez le produit
AmazonLocationiOSTrackingSDK
du package et cliquez sur Ajouter un package.
Utilisation
La procédure suivante explique comment créer un assistant d'authentification à l'aide des informations d'identification d'Amazon Cognito.
-
Après avoir installé la bibliothèque, vous devez ajouter l'une des descriptions ou les deux dans votre
info.plist
fichier :Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description
-
Ensuite, importez le AuthHelper dans votre classe :
import AmazonLocationiOSAuthSDKimport AmazonLocationiOSTrackingSDK
-
Vous allez ensuite créer un
AuthHelper
objet et l'utiliser avec le AWS SDK, en créant un assistant d'authentification à l'aide des informations d'identification d'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)
Filtres
Le SDK iOS de suivi mobile Amazon Location intègre trois filtres de localisation.
-
TimeLocationFilter
: filtre l'emplacement actuel à télécharger en fonction d'un intervalle de temps défini. -
DistanceLocationFilter
: filtre les mises à jour de localisation en fonction d'un seuil de distance spécifié. -
AccuracyLocationFilter
: filtre les mises à jour de localisation en comparant la distance parcourue depuis la dernière mise à jour avec la précision de la position actuelle.
Cet exemple ajoute des filtres LocationTracker
au moment de la création :
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, )
Cet exemple active et désactive le filtre lors de l'exécution avec LocationTracker
:
// To enable the filter locationTracker?.enableFilter(TimeLocationFilter()) // To disable the filter locationTracker?.disableFilter(TimeLocationFilter())
Fonctions de suivi du SDK iOS Mobile
Le SDK de suivi mobile Amazon Location pour iOS inclut les fonctions suivantes :
-
Classe :
LocationTracker
init(provider: LocationCredentialsProvider, trackerName: String, config: LocationTrackerConfig? = nil)
Il s'agit d'une fonction d'initialisation permettant de créer un
LocationTracker
objet. Il nécessite des instances deLocationCredentialsProvider
,trackerName
et éventuellement une instance deLocationTrackingConfig
. Si la configuration n'est pas fournie, elle sera initialisée avec les valeurs par défaut. -
Classe :
LocationTracker
setTrackerConfig(config: LocationTrackerConfig)
Cela définit la configuration du Tracker pour qu'elle prenne effet à tout moment après l'initialisation du suivi de localisation.
-
Classe :
LocationTracker
getTrackerConfig()
Cela permet d'obtenir la configuration de suivi de localisation à utiliser ou à modifier dans votre application.
Retours :
LocationTrackerConfig
-
Classe :
LocationTracker
getDeviceId()
Obtient l'identifiant de l'appareil généré par le traqueur de localisation.
Retours :
String?
-
Classe :
LocationTracker
startTracking()
Démarre le processus d'accès à la position de l'utilisateur et d'envoi de celle-ci au AWS tracker.
-
Classe :
LocationTracker
resumeTracking()
Reprend le processus d'accès à la position de l'utilisateur et d'envoi de celle-ci au AWS traceur.
-
Classe :
LocationTracker
stopTracking()
Arrête le processus de suivi de la position de l'utilisateur.
-
Classe :
LocationTracker
startBackgroundTracking(mode: BackgroundTrackingMode)
Lance le processus d'accès à la position de l'utilisateur et de son envoi au AWS tracker alors que l'application est en arrière-plan.
BackgroundTrackingMode
propose les options suivantes :-
Active:
Cette option n'interrompt pas automatiquement les mises à jour de localisation. -
BatterySaving:
Cette option suspend automatiquement les mises à jour de localisation. -
None:
Cette option désactive globalement les mises à jour de localisation en arrière-plan.
-
-
Classe :
LocationTracker
resumeBackgroundTracking(mode: BackgroundTrackingMode)
Reprend le processus d'accès à la position de l'utilisateur et d'envoi de celle-ci au AWS tracker alors que l'application est en arrière-plan.
-
Classe :
LocationTracker
stopBackgroundTracking()
Arrête le processus d'accès à la position de l'utilisateur et d'envoi de celle-ci au AWS tracker alors que l'application est en arrière-plan.
-
Classe :
LocationTracker
getTrackerDeviceLocation(nextToken: String?, startTime: Date? = nil, endTime: Date? = nil, completion: @escaping (Result<GetLocationResponse, Error>)
Récupère les emplacements de suivi téléchargés pour l'appareil de l'utilisateur entre la date et l'heure de début et de fin.
Retours :
Void
-
Classe :
LocationTrackerConfig
init()
Cela initialise le LocationTrackerConfig avec les valeurs par défaut.
-
Classe :
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)
Cela initialise le
LocationTrackerConfig
avec des valeurs de paramètres définies par l'utilisateur. Si aucune valeur de paramètre n'est fournie, elle sera définie sur une valeur par défaut. -
Classe :
LocationFilter
shouldUpload(currentLocation: LocationEntity, previousLocation: LocationEntity?, trackerConfig: LocationTrackerConfig)
LocationFilter
Il s'agit d'un protocole que les utilisateurs peuvent implémenter pour leur mise en œuvre de filtres personnalisés. Un utilisateur devra implémenter uneshouldUpload
fonction pour comparer l'emplacement précédent et actuel et revenir si l'emplacement actuel doit être téléchargé.
Exemples
Cette section présente des exemples d'utilisation du SDK de suivi mobile Amazon Location pour iOS.
Note
Assurez-vous que les autorisations nécessaires sont définies dans le info.plist
fichier. Il s'agit des mêmes autorisations que celles répertoriées dans la Utilisation section.
L'exemple suivant illustre les fonctionnalités permettant de suivre la position des appareils et de récupérer les positions suivies :
Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description
Commencez à suivre la position :
do { try locationTracker.startTracking() } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Reprenez le suivi de la localisation :
do { try locationTracker.resumeTracking() } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Arrêtez de suivre la position :
locationTracker.stopTracking()
Démarrez le suivi en arrière-plan :
do { locationTracker.startBackgroundTracking(mode: .Active) // .Active, .BatterySaving, .None } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Suivi des antécédents du CV :
do { locationTracker.resumeBackgroundTracking(mode: .Active) } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Pour arrêter le suivi en arrière-plan, procédez comme suit :
locationTracker.stopBackgroundTracking()
Récupérez les positions suivies de l'appareil à partir du tracker :
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) } }) }
Le SDK de suivi mobile Amazon Location fournit des utilitaires qui permettent d'authentifier, de capturer les positions des appareils et d'envoyer des mises à jour de position à Amazon Location Trackers en toute simplicité. Le SDK prend en charge le filtrage local des mises à jour de localisation avec des intervalles de mise à jour configurables. Cela réduit les coûts de données et optimise la connectivité intermittente pour vos applications Android.
Le SDK de suivi Android est disponible sur GitHub : Amazon Location Mobile Tracking SDK for
Cette section couvre les sujets suivants relatifs au SDK Android de suivi mobile Amazon Location :
Installation
Pour installer le SDK, ajoutez les lignes suivantes à la section des dépendances de votre fichier build.gradle dans 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")
Utilisation
Cette procédure explique comment utiliser le SDK pour authentifier et créer l'LocationTracker
objet :
Note
Cette procédure suppose que vous avez importé la bibliothèque mentionnée dans la Installation section.
-
Importez les classes suivantes dans votre code :
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
-
Créez ensuite un
AuthHelper
, puisque leLocationCredentialsProvider
paramètre est obligatoire pour créer unLocationTracker
objet :// Create an authentication helper using credentials from Amazon Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
-
Maintenant, utilisez le
LocationCredentialsProvider
etLocationTrackerConfig
pour créer unLocationTracker
objet :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, )
Filtres
Le SDK Android de suivi mobile Amazon Location intègre trois filtres de localisation.
-
TimeLocationFilter
: filtre l'emplacement actuel à télécharger en fonction d'un intervalle de temps défini. -
DistanceLocationFilter
: filtre les mises à jour de localisation en fonction d'un seuil de distance spécifié. -
AccuracyLocationFilter
: filtre les mises à jour de localisation en comparant la distance parcourue depuis la dernière mise à jour avec la précision de la position actuelle.
Cet exemple ajoute des filtres LocationTracker
au moment de la création :
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, )
Cet exemple active et désactive le filtre lors de l'exécution avec LocationTracker
:
// To enable the filter locationTracker?.enableFilter(TimeLocationFilter()) // To disable the filter locationTracker?.disableFilter(TimeLocationFilter())
Fonctions de suivi du SDK Android Mobile
Le SDK de suivi mobile Amazon Location pour Android inclut les fonctions suivantes :
-
Classe :
LocationTracker
constructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,trackerName: String)
, ouconstructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,clientConfig: LocationTrackerConfig)
Il s'agit d'une fonction d'initialisation permettant de créer un
LocationTracker
objet. Il nécessite des instances deLocationCredentialsProvider
,trackerName
et éventuellement une instance deLocationTrackingConfig
. Si la configuration n'est pas fournie, elle sera initialisée avec les valeurs par défaut. -
Classe :
LocationTracker
start(locationTrackingCallback: LocationTrackingCallback)
Lance le processus d'accès à la position de l'utilisateur et de son envoi à un outil de suivi de localisation Amazon.
-
Classe :
LocationTracker
isTrackingInForeground()
Vérifie si le suivi de localisation est actuellement en cours.
-
Classe :
LocationTracker
stop()
Arrête le processus de suivi de la position de l'utilisateur.
-
Classe :
LocationTracker
startTracking()
Lance le processus d'accès à la position de l'utilisateur et d'envoi de celle-ci au AWS tracker.
-
Classe :
LocationTracker
startBackground(mode: BackgroundTrackingMode, serviceCallback: ServiceCallback)
Lance le processus d'accès à la position de l'utilisateur et de son envoi au AWS tracker alors que l'application est en arrière-plan.
BackgroundTrackingMode
propose les options suivantes :-
ACTIVE_TRACKING
: Cette option suit activement les mises à jour de localisation d'un utilisateur. -
BATTERY_SAVER_TRACKING
: Cette option suit les mises à jour de localisation de l'utilisateur toutes les 15 minutes.
-
-
Classe :
LocationTracker
stopBackgroundService()
Arrête le processus d'accès à la position de l'utilisateur et d'envoi de celle-ci au AWS tracker alors que l'application est en arrière-plan.
-
Classe :
LocationTracker
getTrackerDeviceLocation()
Récupère l'emplacement de l'appareil auprès des services de localisation Amazon.
-
Classe :
LocationTracker
getDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)
Récupère la position actuelle de l'appareil auprès du client du fournisseur de localisation fusionné et la télécharge sur Amazon Location Tracker.
-
Classe :
LocationTracker
uploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)
Télécharge la position de l'appareil vers les services de localisation Amazon après avoir filtré en fonction des filtres de localisation configurés.
-
Classe :
LocationTracker
enableFilter(filter: LocationFilter)
Active un filtre de localisation spécifique.
-
Classe :
LocationTracker
checkFilterIsExistsAndUpdateValue(filter: LocationFilter)
Désactivez un filtre de localisation particulier.
-
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())
Cela initialise le
LocationTrackerConfig
avec des valeurs de paramètres définies par l'utilisateur. Si aucune valeur de paramètre n'est fournie, elle sera définie sur une valeur par défaut. -
Classe :
LocationFilter
shouldUpload(currentLocation: LocationEntry, previousLocation: LocationEntry?): Boolean
LocationFilter
Il s'agit d'un protocole que les utilisateurs peuvent implémenter pour implémenter leur filtre personnalisé. Vous devez implémenter lashouldUpload
fonction pour comparer l'emplacement précédent et actuel et indiquer si l'emplacement actuel doit être téléchargé.
Exemples
L'exemple de code suivant illustre les fonctionnalités du SDK de suivi mobile.
Cet exemple utilise le LocationTracker
pour démarrer et arrêter le suivi en arrière-plan :
// 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()