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 SDKs de rastreamento
Esse tópico fornece informações sobre como usar os SDKs de rastreamento.
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 para iOS está disponível no GitHub: Amazon Location Mobile Tracking SDK for iOS
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-iose clique em Add Package. -
Selecione o produto do pacote
AmazonLocationiOSTrackingSDKe clique em Add Package.
Uso
O procedimento a seguir mostra como criar um assistente de autenticação usando-se as 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 objeto
AuthHelpere 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:
LocationTrackerinit(provider: LocationCredentialsProvider, trackerName: String, config: LocationTrackerConfig? = nil)Essa é uma função inicializadora para criar um objeto
LocationTracker. Requer instâncias deLocationCredentialsProvider,trackerNamee, opcionalmente, uma instância deLocationTrackingConfig. Se a configuração não for fornecida, ela será inicializada com valores padrão. -
Classe:
LocationTrackersetTrackerConfig(config: LocationTrackerConfig)Isso define a configuração do rastreador para entrar em vigor a qualquer momento após a inicialização do rastreador de localização.
-
Classe:
LocationTrackergetTrackerConfig()Isso faz com que a configuração de rastreamento de localização seja usada ou modificada na sua aplicação.
Retorna:
LocationTrackerConfig -
Classe:
LocationTrackergetDeviceId()Obtém o ID do dispositivo gerado pelo rastreador de localização.
Retorna:
String? -
Classe:
LocationTrackerstartTracking()Inicia o processo de acessar a localização do usuário e enviá-la ao rastreador da AWS.
-
Classe:
LocationTrackerresumeTracking()Retoma o processo de acessar a localização do usuário e enviá-la ao rastreador da AWS.
-
Classe:
LocationTrackerstopTracking()Interrompe o processo de rastreamento da localização do usuário.
-
Classe:
LocationTrackerstartBackgroundTracking(mode: BackgroundTrackingMode)Inicia o processo de acessar a localização do usuário e enviá-la ao rastreador da AWS enquanto a aplicação está em segundo plano. O
BackgroundTrackingModetem 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:
LocationTrackerresumeBackgroundTracking(mode: BackgroundTrackingMode)Retoma o processo de acessar a localização do usuário e enviá-la ao rastreador da AWS enquanto a aplicação está em segundo plano.
-
Classe:
LocationTrackerstopBackgroundTracking()Interrompe o processo de acessar a localização do usuário e enviá-la ao rastreador da AWS enquanto a aplicação está em segundo plano.
-
Classe:
LocationTrackergetTrackerDeviceLocation(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:
LocationTrackerConfiginit()Isso inicializa o LocationTrackerConfig com valores padrão.
-
Classe:
LocationTrackerConfiginit(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
LocationTrackerConfigcom 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:
LocationFiltershouldUpload(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çãoshouldUploadpara 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 para Android está disponível no GitHub: Amazon Location Mobile Tracking SDK for Android
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
LocationCredentialsProvidereLocationTrackerConfigpara 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:
LocationTrackerconstructor(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,trackerNamee, opcionalmente, uma instância deLocationTrackingConfig. Se a configuração não for fornecida, ela será inicializada com valores padrão. -
Classe:
LocationTrackerstart(locationTrackingCallback: LocationTrackingCallback)Inicia o processo de acessar a localização do usuário e enviá-la para um rastreador do Amazon Location.
-
Classe:
LocationTrackerisTrackingInForeground()Verifica se o rastreamento de localização está em andamento.
-
Classe:
LocationTrackerstop()Interrompe o processo de rastreamento da localização do usuário.
-
Classe:
LocationTrackerstartTracking()Inicia o processo de acessar a localização do usuário e enviá-la ao rastreador da AWS.
-
Classe:
LocationTrackerstartBackground(mode: BackgroundTrackingMode, serviceCallback: ServiceCallback)Inicia o processo de acessar a localização do usuário e enviá-la ao rastreador da AWS enquanto a aplicação está em segundo plano. O
BackgroundTrackingModetem 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:
LocationTrackerstopBackgroundService()Interrompe o processo de acessar a localização do usuário e enviá-la ao rastreador da AWS enquanto a aplicação está em segundo plano.
-
Classe:
LocationTrackergetTrackerDeviceLocation()Recupera a localização do dispositivo dos serviços do Amazon Location.
-
Classe:
LocationTrackergetDeviceLocation(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:
LocationTrackeruploadLocationUpdates(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:
LocationTrackerenableFilter(filter: LocationFilter)Ativa um filtro de localização específico.
-
Classe:
LocationTrackercheckFilterIsExistsAndUpdateValue(filter: LocationFilter)Desativa o filtro de localização específico.
-
Classe:
LocationTrackerConfigLocationTrackerConfig( // 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
LocationTrackerConfigcom 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:
LocationFiltershouldUpload(currentLocation: LocationEntry, previousLocation: LocationEntry?): BooleanO
LocationFilteré um protocolo que os usuários podem implementar para a implementação de filtros personalizados. Você precisa implementar a funçãoshouldUploadpara 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()