Android 모바일 추적 SDK - Amazon Location Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Android 모바일 추적 SDK

Amazon Location 모바일 추적은 쉽게 인증하고 디바이스 위치를 캡처하고 Amazon Location Tracker에 위치 업데이트를 전송하는 데 도움이 되는 유틸리티를 SDK 제공합니다. 는 구성 가능한 업데이트 간격을 사용하여 위치 업데이트의 로컬 필터링을 SDK 지원합니다. 이렇게 하면 데이터 비용이 절감되고 Android 애플리케이션의 간헐적 연결이 최적화됩니다.

Android 추적SDK은 Amazon GitHub Location Mobile Tracking SDK for Android 에서 사용할 수 있습니다. 또한 AWS Maven 리포지토리 에서 모바일 인증SDK과 AWS SDK 를 모두 사용할 수 있습니다. Android 추적SDK은 일반 에서 작동하도록 설계되었습니다 AWS SDK.

이 섹션에서는 Amazon Location 모바일 추적 Android 에 대한 다음 주제를 다룹니다SDK.

설치

를 설치하려면 Android Studio에서 build.gradle 파일의 종속성 섹션에 다음 줄을 SDK추가합니다.

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")

사용량

이 절차는 를 사용하여 LocationTracker 객체를 SDK 인증하고 생성하는 방법을 보여줍니다.

참고

이 절차에서는 설치 섹션에 언급된 라이브러리를 가져온 것으로 가정합니다.

  1. 코드에서 다음 클래스를 가져옵니다.

    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. 그런 다음 LocationTracker 객체를 생성하는 데 LocationCredentialsProvider 파라미터가 필요AuthHelper하므로 를 생성합니다.

    // Create an authentication helper using credentials from Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
  3. 이제 LocationCredentialsProvider 및 를 사용하여 LocationTracker 객체를 LocationTrackerConfig 생성합니다.

    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, )

필터

Amazon Location 모바일 추적 Android에는 3개의 내장 위치 필터SDK가 있습니다.

  • TimeLocationFilter: 정의된 시간 간격을 기준으로 업로드할 현재 위치를 필터링합니다.

  • DistanceLocationFilter: 지정된 거리 임계값을 기준으로 위치 업데이트를 필터링합니다.

  • AccuracyLocationFilter: 마지막 업데이트 이후 이동한 거리를 현재 위치의 정확도와 비교하여 위치 업데이트를 필터링합니다.

이 예제에서는 생성 LocationTracker 시 에 필터를 추가합니다.

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, )

이 예제에서는 를 사용하여 런타임 시 필터를 활성화 및 비활성화합니다LocationTracker.

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

Android Mobile SDK 추적 기능

AndroidSDK용 Amazon Location 모바일 추적에는 다음 함수가 포함됩니다.

  • 클래스: LocationTracker

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

    이는 LocationTracker 객체를 생성하는 초기화 기능입니다. 의 인스턴스trackerName와 선택적으로 LocationCredentialsProvider 의 인스턴스가 필요합니다LocationTrackingConfig. 구성이 제공되지 않으면 기본값으로 초기화됩니다.

  • 클래스: LocationTracker

    start(locationTrackingCallback: LocationTrackingCallback)

    사용자의 위치에 액세스하여 Amazon Location 트래커로 전송하는 프로세스를 시작합니다.

  • 클래스: LocationTracker

    isTrackingInForeground()

    위치 추적이 현재 진행 중인지 확인합니다.

  • 클래스: LocationTracker

    stop()

    사용자의 위치를 추적하는 프로세스를 중지합니다.

  • 클래스: LocationTracker

    startTracking()

    사용자의 위치에 액세스하여 AWS 트래커로 전송하는 프로세스를 시작합니다.

  • 클래스: LocationTracker

    startBackground(mode: BackgroundTrackingMode, serviceCallback: ServiceCallback)

    애플리케이션이 백그라운드에 있는 동안 사용자의 위치에 액세스하여 AWS 트래커로 전송하는 프로세스를 시작합니다. BackgroundTrackingMode 에는 다음 옵션이 있습니다.

    • ACTIVE_TRACKING: 이 옵션은 사용자의 위치 업데이트를 적극적으로 추적합니다.

    • BATTERY_SAVER_TRACKING: 이 옵션은 15분마다 사용자의 위치 업데이트를 추적합니다.

  • 클래스: LocationTracker

    stopBackgroundService()

    애플리케이션이 백그라운드에 있는 동안 사용자의 위치에 액세스하여 AWS 트래커로 전송하는 프로세스를 중지합니다.

  • 클래스: LocationTracker

    getTrackerDeviceLocation()

    Amazon Location 서비스에서 디바이스 위치를 검색합니다.

  • 클래스: LocationTracker

    getDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)

    융합 위치 공급자 클라이언트에서 현재 디바이스 위치를 검색하여 Amazon Location 트래커에 업로드합니다.

  • 클래스: LocationTracker

    uploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)

    구성된 위치 필터를 기반으로 필터링한 후 Amazon Location 서비스에 디바이스 위치를 업로드합니다.

  • 클래스: LocationTracker

    enableFilter(filter: LocationFilter)

    특정 위치 필터를 활성화합니다.

  • 클래스: LocationTracker

    checkFilterIsExistsAndUpdateValue(filter: LocationFilter)

    특정 위치 필터를 비활성화합니다.

  • 클래스: 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())

    이렇게 하면 사용자 정의 파라미터 값으로 LocationTrackerConfig가 초기화됩니다. 파라미터 값이 제공되지 않으면 기본값으로 설정됩니다.

  • 클래스: LocationFilter

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

    LocationFilter 는 사용자가 사용자 지정 필터 구현을 위해 구현할 수 있는 프로토콜입니다. 이전 위치와 현재 위치를 비교하고 현재 위치를 업로드해야 하는 경우 반환하려면 shouldUpload 함수를 구현해야 합니다.

예시

다음 코드 샘플은 모바일 추적 SDK 기능을 보여줍니다.

이 예제에서는 를 사용하여 백그라운드에서 추적LocationTracker을 시작하고 중지합니다.

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