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 iOS 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 iOS.
O rastreamento do iOS SDK está disponível em GitHub: Amazon Location Mobile Tracking SDK para iOS
Esta seção aborda os seguintes tópicos para o rastreamento móvel de localização da Amazon para iOSSDK:
Instalação
Use o procedimento a seguir para instalar o rastreamento móvel SDK para iOS:
-
No seu projeto do Xcode, vá até Arquivo e selecione Add Package Dependencies.
-
Digite o seguinteURL: https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios/
na barra de pesquisa e pressione a tecla enter. -
Selecione o
amazon-location-mobile-tracking-sdk-ios
pacote e clique em Add Package. -
Selecione o produto
AmazonLocationiOSTrackingSDK
do pacote e clique em Add Package.
Uso
O procedimento a seguir mostra como criar um auxiliar de autenticação usando credenciais do Cognito.
-
Depois de instalar a biblioteca, você precisa adicionar uma ou ambas as descrições ao seu
info.plist
arquivo: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 rastreamento móvel de localização da Amazon para iOS 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 de dispositivos móveis para iOS
O rastreamento móvel de localização da Amazon SDK 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
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
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 em seu aplicativo.
Devoluções:
LocationTrackerConfig
-
Classe:
LocationTracker
getDeviceId()
Obtém o ID do dispositivo gerado pelo rastreador de localização.
Devoluções:
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.
Devoluções:
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)
LocationFilter
É um protocolo que os usuários podem implementar para a implementação de filtros personalizados. Um usuário precisaria implementar umashouldUpload
função para comparar a localização anterior e atual e retornar se a localização atual deveria ser carregada.
Exemplos
Esta seção detalha exemplos de uso do Amazon Location Mobile Tracking SDK para iOS.
nota
Certifique-se de que as permissões necessárias estejam definidas no info.plist
arquivo. Essas são as mesmas permissões listadas na Uso seção.
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 }
Continue rastreando a 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 os locais rastreados 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) } }) }