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
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.
-
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
-
Em seguida, crie um
AuthHelper
, pois oLocationCredentialsProvider
parâmetro é necessário para criar umLocationTracker
objeto:// Create an authentication helper using credentials from Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
-
Agora, use
LocationCredentialsProvider
eLocationTrackerConfig
para criar umLocationTracker
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)
, ouconstructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,clientConfig: LocationTrackerConfig)
Essa é uma função inicializadora para criar um
LocationTracker
objeto. Requer instâncias detrackerName
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 ashouldUpload
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()