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á.
Como usar o Rastreamento SDKs
Este tópico fornece informações sobre como usar o Rastreamento SDKs.
O SDK de rastreamento móvel do Amazon Location fornece utilitários que ajudam a autenticar, capturar posições de dispositivos e enviar atualizações de posição para rastreadores do Amazon Location com facilidade. O SDK é compatível com 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 suas aplicações iOS.
O SDK de rastreamento do iOS está disponível em GitHub: Amazon Location Mobile Tracking SDK
Esta seção aborda os seguintes tópicos do SDK do iOS de rastreamento móvel do Amazon Location:
Instalação
Use o seguinte procedimento para instalar o SDK de rastreamento móvel para iOS:
-
No seu projeto do Xcode, acesse File e selecione Add Package Dependencies.
-
Digite o seguinte URL: https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios/
na barra de pesquisa e pressione a tecla enter. -
Selecione o pacote
amazon-location-mobile-tracking-sdk-ios
e clique em Add Package. -
Selecione o produto do pacote
AmazonLocationiOSTrackingSDK
e clique em Add Package.
Uso
O procedimento a seguir mostra como criar um auxiliar de autenticação usando credenciais do Amazon Cognito.
-
Depois de instalar a biblioteca, você precisa adicionar uma ou ambas as descrições ao seu arquivo
info.plist
:Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description
-
Em seguida, importe o AuthHelper em sua classe:
import AmazonLocationiOSAuthSDKimport AmazonLocationiOSTrackingSDK
-
Em seguida, você criará um
AuthHelper
objeto e o usará com o AWS SDK, criando um auxiliar de autenticação usando credenciais do 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)
Filtros
O SDK do iOS de rastreamento móvel do Amazon Location 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
no 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 runtime com o LocationTracker
:
// To enable the filter locationTracker?.enableFilter(TimeLocationFilter()) // To disable the filter locationTracker?.disableFilter(TimeLocationFilter())
Funções de rastreamento do SDK móvel para iOS
O SDK de rastreamento móvel do Amazon Location para iOS inclui as seguintes funções:
-
Classe:
LocationTracker
init(provider: LocationCredentialsProvider, trackerName: String, config: LocationTrackerConfig? = nil)
Essa é uma função inicializadora para criar um objeto
LocationTracker
. Requer instâncias deLocationCredentialsProvider
,trackerName
e, opcionalmente, uma instância deLocationTrackingConfig
. Se a configuração não for fornecida, ela será inicializada com valores padrão. -
Classe:
LocationTracker
setTrackerConfig(config: LocationTrackerConfig)
Isso define a configuração do Tracker para entrar em vigor a qualquer momento após a inicialização do rastreador de localização.
-
Classe:
LocationTracker
getTrackerConfig()
Isso faz com que a configuração de rastreamento de localização seja usada ou modificada na sua aplicação.
Retorna:
LocationTrackerConfig
-
Classe:
LocationTracker
getDeviceId()
Obtém o ID do dispositivo gerado pelo rastreador de localização.
Retorna:
String?
-
Classe:
LocationTracker
startTracking()
Inicia o processo de acessar a localização do usuário e enviá-la ao AWS rastreador.
-
Classe:
LocationTracker
resumeTracking()
Retoma o processo de acessar a localização do usuário e enviá-la ao AWS rastreador.
-
Classe:
LocationTracker
stopTracking()
Interrompe o processo de rastreamento da localização do usuário.
-
Classe:
LocationTracker
startBackgroundTracking(mode: BackgroundTrackingMode)
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:
essa opção não pausa automaticamente as atualizações de localização. -
BatterySaving:
Essa opção pausa automaticamente as atualizações de localização. -
None:
Em geral, essa opção desativa as atualizações de localização em segundo plano.
-
-
Classe:
LocationTracker
resumeBackgroundTracking(mode: BackgroundTrackingMode)
Retoma 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
stopBackgroundTracking()
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(nextToken: String?, startTime: Date? = nil, endTime: Date? = nil, completion: @escaping (Result<GetLocationResponse, Error>)
Recupera os locais de rastreamento enviados para o dispositivo do usuário entre a data e hora de início e término.
Retorna:
Void
-
Classe:
LocationTrackerConfig
init()
Isso inicializa o LocationTrackerConfig com valores padrão.
-
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)
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: LocationEntity, previousLocation: LocationEntity?, trackerConfig: LocationTrackerConfig)
O
LocationFilter
é um protocolo que os usuários podem implementar para a implementação de filtros personalizados. Um usuário precisaria implementar uma funçãoshouldUpload
para comparar a localização anterior e atual e retornar se a localização atual deveria ser carregada.
Exemplos
Esta seção detalha exemplos do uso do Amazon Location Mobile Tracking SDK para iOS.
nota
Certifique-se de que as permissões necessárias estejam definidas no arquivo info.plist
. Essas são as mesmas permissões listadas na seção Uso.
O exemplo a seguir demonstra a funcionalidade para rastrear a localização do dispositivo e recuperar os locais rastreados:
Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description
Comece a rastrear a localização:
do { try locationTracker.startTracking() } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Retome o rastreamento da localização:
do { try locationTracker.resumeTracking() } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Pare de rastrear a localização:
locationTracker.stopTracking()
Inicie o rastreamento em segundo plano:
do { locationTracker.startBackgroundTracking(mode: .Active) // .Active, .BatterySaving, .None } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Retomar o rastreamento em segundo plano:
do { locationTracker.resumeBackgroundTracking(mode: .Active) } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }
Para interromper o rastreamento em segundo plano:
locationTracker.stopBackgroundTracking()
Recupere as localizações rastreadas do dispositivo a partir do rastreador:
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) } }) }
O SDK de rastreamento móvel do Amazon Location fornece utilitários que ajudam a autenticar, capturar posições de dispositivos e enviar atualizações de posição para rastreadores do Amazon Location com facilidade. O SDK é compatível com 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 suas aplicações Android.
O SDK de rastreamento do Android está disponível em GitHub: Amazon Location Mobile Tracking SDK
Esta seção aborda os seguintes tópicos do SDK do Android de rastreamento móvel do Amazon Location:
Instalação
Para instalar o SDK, 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 SDK para autenticar e criar o objeto LocationTracker
:
nota
Esse procedimento pressupõe que você tenha importado a biblioteca mencionada na seção Instalaçã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 o parâmetroLocationCredentialsProvider
é necessário para criar um objetoLocationTracker
:// Create an authentication helper using credentials from Amazon Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
-
Agora, use
LocationCredentialsProvider
eLocationTrackerConfig
para criar um objetoLocationTracker
: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 SDK do Android de rastreamento móvel do Amazon Location 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
no 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 runtime com o LocationTracker
:
// To enable the filter locationTracker?.enableFilter(TimeLocationFilter()) // To disable the filter locationTracker?.disableFilter(TimeLocationFilter())
Funções de rastreamento do Android Mobile SDK
O SDK de rastreamento móvel do Amazon Location 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 objeto
LocationTracker
. Requer instâncias deLocationCredentialsProvider
,trackerName
e, 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 do Amazon Location.
-
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 do Amazon Location.
-
Classe:
LocationTracker
getDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)
Recupera a localização atual do dispositivo do cliente do provedor de localização fundido e a carrega no rastreador do Amazon Location.
-
Classe:
LocationTracker
uploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)
Carrega a localização do dispositivo para os serviços do Amazon Location 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)
Desativa 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
O
LocationFilter
é um protocolo que os usuários podem implementar para a implementação de filtros personalizados. Você precisa implementar a funçãoshouldUpload
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 funcionalidade do SDK 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()