Suivi mobile Android SDK - Amazon Location Service

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. De plus, l'authentification mobile SDK et l'authentification AWS SDK sont disponibles dans le référentiel AWS Maven. Le suivi Android SDK est conçu pour fonctionner avec le général AWS SDK.

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'LocationTrackerobjet :

Note

Cette procédure suppose que vous avez importé la bibliothèque mentionnée dans la Installation section.

  1. 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
  2. Créez ensuite unAuthHelper, puisque le LocationCredentialsProvider paramètre est obligatoire pour créer un LocationTracker objet :

    // Create an authentication helper using credentials from Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
  3. Maintenant, utilisez le LocationCredentialsProvider et LocationTrackerConfig pour créer un LocationTracker 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), ou constructor(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

    LocationFilterIl s'agit d'un protocole que les utilisateurs peuvent implémenter pour implémenter leur filtre personnalisé. Vous devez implémenter la shouldUpload 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()