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.
Suivi mobile Android SDK
Le suivi mobile Amazon Location SDK 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é. Il 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 suivi Android SDK est disponible sur GitHub : Amazon Location Mobile Tracking SDK pour Android
Cette section couvre les sujets suivants relatifs au suivi mobile Amazon Location pour Android SDK :
Installation
Pour installer leSDK, 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 pour SDK 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 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 système Android de suivi mobile Amazon Location SDK 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 SDK suivi Android Mobile
Le suivi mobile Amazon Location SDK 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 montre la SDK fonctionnalité 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()