Rastreamento móvel Android SDK - Amazon Location Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Rastreamento móvel Android SDK

O rastreamento móvel de localização da Amazon SDK fornece utilitários que ajudam a autenticar, capturar posições de dispositivos e enviar atualizações de posição para os Amazon Location Trackers com facilidade. O SDK suporta a filtragem local de atualizações de localização com intervalos de atualização configuráveis. Isso reduz os custos de dados e otimiza a conectividade intermitente para seus aplicativos Android.

O rastreamento do Android SDK está disponível em GitHub: Amazon Location Mobile Tracking SDK para Android. Além disso, tanto a autenticação móvel SDK quanto a AWS SDK estão disponíveis no repositório AWS Maven. O rastreamento do Android foi SDK projetado para funcionar com o geral AWS SDK.

Esta seção aborda os seguintes tópicos para o Android de rastreamento móvel de localização da AmazonSDK:

Instalação

Para instalar oSDK, adicione as seguintes linhas à seção de dependências do seu arquivo build.gradle no 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 procedimento mostra como usar o para SDK autenticar e criar o LocationTracker objeto:

nota

Esse procedimento pressupõe que você tenha importado a biblioteca mencionada na Instalação seção.

  1. Importe as seguintes classes em seu 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
  2. Em seguida, crie umAuthHelper, pois o LocationCredentialsProvider parâmetro é necessário para criar um LocationTracker objeto:

    // Create an authentication helper using credentials from Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
  3. Agora, use LocationCredentialsProvider e LocationTrackerConfig para criar um LocationTracker 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

O Android de rastreamento móvel de localização da Amazon SDK tem três filtros de localização embutidos.

  • TimeLocationFilter: filtra a localização atual a ser carregada com base em um intervalo de tempo definido.

  • DistanceLocationFilter: filtra as atualizações de localização com base em um limite de distância especificado.

  • AccuracyLocationFilter: filtra as atualizações de localização comparando a distância percorrida desde a última atualização com a precisão da localização atual.

Este exemplo adiciona filtros no LocationTracker momento da criação:

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 exemplo ativa e desativa o filtro em tempo de execução comLocationTracker:

// To enable the filter locationTracker?.enableFilter(TimeLocationFilter()) // To disable the filter locationTracker?.disableFilter(TimeLocationFilter())

Funções de SDK rastreamento do Android Mobile

O rastreamento móvel Amazon Location SDK para Android inclui as seguintes funções:

  • Classe: LocationTracker

    constructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,trackerName: String), ou constructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,clientConfig: LocationTrackerConfig)

    Essa é uma função inicializadora para criar um LocationTracker objeto. Requer instâncias de trackerName eLocationCredentialsProvider, opcionalmente, uma instância deLocationTrackingConfig. Se a configuração não for fornecida, ela será inicializada com valores padrão.

  • Classe: LocationTracker

    start(locationTrackingCallback: LocationTrackingCallback)

    Inicia o processo de acessar a localização do usuário e enviá-la para um rastreador de localização da Amazon.

  • Classe: LocationTracker

    isTrackingInForeground()

    Verifica se o rastreamento de localização está em andamento.

  • Classe: LocationTracker

    stop()

    Interrompe o processo de rastreamento da localização do usuário.

  • Classe: LocationTracker

    startTracking()

    Inicia o processo de acessar a localização do usuário e enviá-la ao AWS rastreador.

  • Classe: LocationTracker

    startBackground(mode: BackgroundTrackingMode, serviceCallback: ServiceCallback)

    Inicia o processo de acessar a localização do usuário e enviá-la ao AWS rastreador enquanto o aplicativo está em segundo plano. BackgroundTrackingMode tem as seguintes opções:

    • ACTIVE_TRACKING: essa opção rastreia ativamente as atualizações de localização de um usuário.

    • BATTERY_SAVER_TRACKING: essa opção rastreia as atualizações de localização do usuário a cada 15 minutos.

  • Classe: LocationTracker

    stopBackgroundService()

    Interrompe o processo de acessar a localização do usuário e enviá-la ao AWS rastreador enquanto o aplicativo está em segundo plano.

  • Classe: LocationTracker

    getTrackerDeviceLocation()

    Recupera a localização do dispositivo dos serviços de localização da Amazon.

  • Classe: LocationTracker

    getDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)

    Recupera a localização atual do dispositivo do cliente do provedor de localização fundido e a carrega no Amazon Location Tracker.

  • Classe: LocationTracker

    uploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)

    Carrega a localização do dispositivo para os serviços de localização da Amazon após a filtragem com base nos filtros de localização configurados.

  • Classe: LocationTracker

    enableFilter(filter: LocationFilter)

    Ativa um filtro de localização específico.

  • Classe: LocationTracker

    checkFilterIsExistsAndUpdateValue(filter: LocationFilter)

    Desative o filtro de localização específico.

  • 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())

    Isso inicializa o LocationTrackerConfig com valores de parâmetros definidos pelo usuário. Se um valor de parâmetro não for fornecido, ele será definido como um valor padrão.

  • Classe: LocationFilter

    shouldUpload(currentLocation: LocationEntry, previousLocation: LocationEntry?): Boolean

    LocationFilterÉ um protocolo que os usuários podem implementar para a implementação de filtros personalizados. Você precisa implementar a shouldUpload função para comparar a localização anterior e atual e retornar se a localização atual deve ser carregada.

Exemplos

O exemplo de código a seguir mostra a SDK funcionalidade de rastreamento móvel.

Este exemplo usa o LocationTracker para iniciar e interromper o rastreamento em 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()