Cara menggunakan Tracking SDKs - Amazon Location Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Cara menggunakan Tracking SDKs

Topik ini memberikan informasi tentang cara menggunakan Tracking SDKs.

SDK pelacakan seluler Lokasi Amazon menyediakan utilitas yang membantu dengan mudah mengautentikasi, menangkap posisi perangkat, dan mengirim pembaruan posisi ke Pelacak Lokasi Amazon. SDK mendukung pemfilteran lokal pembaruan lokasi dengan interval pembaruan yang dapat dikonfigurasi. Ini mengurangi biaya data dan mengoptimalkan konektivitas intermiten untuk aplikasi iOS Anda.

SDK pelacakan iOS tersedia di GitHub: Amazon Location Mobile Tracking SDK for iOS.

Bagian ini mencakup topik-topik berikut untuk Amazon Location mobile tracking iOS SDK:

Penginstalan

Gunakan prosedur berikut untuk menginstal SDK pelacakan seluler untuk iOS:

  1. Dalam proyek Xcode Anda, buka File dan pilih Add Package Dependencies.

  2. Ketik URL berikut: https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios/ ke dalam bilah pencarian dan tekan tombol enter.

  3. Pilih amazon-location-mobile-tracking-sdk-ios paket dan klik Add Package.

  4. Pilih produk AmazonLocationiOSTrackingSDK paket dan klik Add Package.

Penggunaan

Prosedur berikut menunjukkan cara membuat pembantu otentikasi menggunakan kredensional dari Amazon Cognito.

  1. Setelah menginstal perpustakaan, Anda perlu menambahkan satu atau kedua deskripsi ke dalam info.plist file Anda:

    Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description
  2. Selanjutnya, impor AuthHelper di kelas Anda:

    import AmazonLocationiOSAuthSDKimport AmazonLocationiOSTrackingSDK
  3. Kemudian Anda akan membuat AuthHelper objek dan menggunakannya dengan AWS SDK, dengan membuat pembantu otentikasi menggunakan kredensi dari 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)

Filter

SDK iOS pelacakan seluler Lokasi Amazon memiliki tiga filter lokasi bawaan.

  • TimeLocationFilter: Memfilter lokasi saat ini yang akan diunggah berdasarkan interval waktu yang ditentukan.

  • DistanceLocationFilter: Memfilter pembaruan lokasi berdasarkan ambang jarak yang ditentukan.

  • AccuracyLocationFilter: Memfilter pembaruan lokasi dengan membandingkan jarak yang dipindahkan sejak pembaruan terakhir dengan akurasi lokasi saat ini.

Contoh ini menambahkan filter LocationTracker pada saat pembuatan:

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

Contoh ini mengaktifkan dan menonaktifkan filter saat runtime dengan: LocationTracker

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

Fungsi pelacakan SDK Seluler iOS

SDK pelacakan seluler Lokasi Amazon untuk iOS mencakup fungsi-fungsi berikut:

  • Kelas: LocationTracker

    init(provider: LocationCredentialsProvider, trackerName: String, config: LocationTrackerConfig? = nil)

    Ini adalah fungsi penginisialisasi untuk membuat objek. LocationTracker Ini membutuhkan contohLocationCredentialsProvider, trackerName dan secara opsional sebuah instance dari. LocationTrackingConfig Jika konfigurasi tidak disediakan, konfigurasi akan diinisialisasi dengan nilai default.

  • Kelas: LocationTracker

    setTrackerConfig(config: LocationTrackerConfig)

    Ini menetapkan konfigurasi Tracker untuk berlaku kapan saja setelah inisialisasi pelacak lokasi.

  • Kelas: LocationTracker

    getTrackerConfig()

    Ini membuat konfigurasi pelacakan lokasi untuk digunakan atau dimodifikasi di aplikasi Anda.

    Pengembalian: LocationTrackerConfig

  • Kelas: LocationTracker

    getDeviceId()

    Mendapat Id perangkat yang dihasilkan pelacak lokasi.

    Pengembalian: String?

  • Kelas: LocationTracker

    startTracking()

    Memulai proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak.

  • Kelas: LocationTracker

    resumeTracking()

    Melanjutkan proses mengakses lokasi pengguna dan mengirimkannya ke pelacak. AWS

  • Kelas: LocationTracker

    stopTracking()

    Menghentikan proses melacak lokasi pengguna.

  • Kelas: LocationTracker

    startBackgroundTracking(mode: BackgroundTrackingMode)

    Memulai proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak saat aplikasi berada di latar belakang. BackgroundTrackingModememiliki opsi berikut:

    • Active:Opsi ini tidak secara otomatis menjeda pembaruan lokasi.

    • BatterySaving:Opsi ini secara otomatis menjeda pembaruan lokasi.

    • None:Opsi ini secara keseluruhan menonaktifkan pembaruan lokasi latar belakang.

  • Kelas: LocationTracker

    resumeBackgroundTracking(mode: BackgroundTrackingMode)

    Melanjutkan proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak saat aplikasi berada di latar belakang.

  • Kelas: LocationTracker

    stopBackgroundTracking()

    Menghentikan proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak saat aplikasi berada di latar belakang.

  • Kelas: LocationTracker

    getTrackerDeviceLocation(nextToken: String?, startTime: Date? = nil, endTime: Date? = nil, completion: @escaping (Result<GetLocationResponse, Error>)

    Mengambil lokasi pelacakan yang diunggah untuk perangkat pengguna antara tanggal dan waktu mulai dan berakhir.

    Pengembalian: Void

  • Kelas: LocationTrackerConfig

    init()

    Ini menginisialisasi LocationTrackerConfig dengan nilai default.

  • Kelas: 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)

    Ini menginisialisasi LocationTrackerConfig dengan nilai parameter yang ditentukan pengguna. Jika nilai parameter tidak disediakan itu akan diatur ke nilai default.

  • Kelas: LocationFilter

    shouldUpload(currentLocation: LocationEntity, previousLocation: LocationEntity?, trackerConfig: LocationTrackerConfig)

    LocationFilterIni adalah protokol yang dapat diterapkan pengguna untuk implementasi filter khusus mereka. Seorang pengguna perlu mengimplementasikan shouldUpload fungsi untuk membandingkan lokasi sebelumnya dan saat ini dan kembali jika lokasi saat ini harus diunggah.

Contoh

Bagian ini merinci contoh penggunaan SDK for iOS Pelacakan Seluler Lokasi Amazon.

catatan

Pastikan bahwa izin yang diperlukan diatur dalam info.plist file. Ini adalah izin yang sama yang tercantum di Penggunaan bagian ini.

Contoh berikut menunjukkan fungsionalitas untuk melacak lokasi perangkat dan mengambil lokasi yang dilacak:

Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description

Mulai melacak lokasi:

do { try locationTracker.startTracking() } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }

Lanjutkan melacak lokasi:

do { try locationTracker.resumeTracking() } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }

Berhenti melacak lokasi:

locationTracker.stopTracking()

Mulai pelacakan latar belakang:

do { locationTracker.startBackgroundTracking(mode: .Active) // .Active, .BatterySaving, .None } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }

Lanjutkan pelacakan latar belakang:

do { locationTracker.resumeBackgroundTracking(mode: .Active) } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }

Untuk menghentikan pelacakan latar belakang:

locationTracker.stopBackgroundTracking()

Ambil lokasi perangkat yang dilacak dari pelacak:

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

SDK pelacakan seluler Lokasi Amazon menyediakan utilitas yang membantu dengan mudah mengautentikasi, menangkap posisi perangkat, dan mengirim pembaruan posisi ke Pelacak Lokasi Amazon. SDK mendukung pemfilteran lokal pembaruan lokasi dengan interval pembaruan yang dapat dikonfigurasi. Ini mengurangi biaya data dan mengoptimalkan konektivitas intermiten untuk aplikasi Android Anda.

SDK pelacakan Android tersedia di GitHub: Amazon Location Mobile Tracking SDK for Android. Selain itu, baik SDK otentikasi seluler dan SDK tersedia di AWS repositori Maven.AWS SDK pelacakan Android dirancang untuk bekerja dengan AWS SDK umum.

Bagian ini mencakup topik-topik berikut untuk Amazon Location mobile tracking Android SDK:

Penginstalan

Untuk menginstal SDK, tambahkan baris berikut ke bagian dependensi file build.gradle Anda di 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")

Penggunaan

Prosedur ini menunjukkan cara menggunakan SDK untuk mengautentikasi dan membuat objek: LocationTracker

catatan

Prosedur ini mengasumsikan Anda telah mengimpor pustaka yang disebutkan di Penginstalan bagian.

  1. Impor kelas berikut dalam kode Anda:

    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. Selanjutnya buatAuthHelper, karena LocationCredentialsProvider parameter diperlukan untuk membuat LocationTracker objek:

    // Create an authentication helper using credentials from Amazon Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
  3. Sekarang, gunakan LocationCredentialsProvider dan LocationTrackerConfig untuk membuat LocationTracker objek:

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

Filter

Android SDK pelacakan seluler Amazon Location memiliki tiga filter lokasi bawaan.

  • TimeLocationFilter: Memfilter lokasi saat ini yang akan diunggah berdasarkan interval waktu yang ditentukan.

  • DistanceLocationFilter: Memfilter pembaruan lokasi berdasarkan ambang jarak yang ditentukan.

  • AccuracyLocationFilter: Memfilter pembaruan lokasi dengan membandingkan jarak yang dipindahkan sejak pembaruan terakhir dengan akurasi lokasi saat ini.

Contoh ini menambahkan filter LocationTracker pada saat pembuatan:

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

Contoh ini mengaktifkan dan menonaktifkan filter saat runtime dengan: LocationTracker

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

Fungsi pelacakan SDK Seluler Android

SDK for Android pelacakan seluler Lokasi Amazon mencakup fungsi-fungsi berikut:

  • Kelas: LocationTracker

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

    Ini adalah fungsi penginisialisasi untuk membuat objek. LocationTracker Ini membutuhkan contohLocationCredentialsProvider, trackerName dan secara opsional sebuah instance dari. LocationTrackingConfig Jika konfigurasi tidak disediakan, konfigurasi akan diinisialisasi dengan nilai default.

  • Kelas: LocationTracker

    start(locationTrackingCallback: LocationTrackingCallback)

    Memulai proses mengakses lokasi pengguna dan mengirimkannya ke pelacak Lokasi Amazon.

  • Kelas: LocationTracker

    isTrackingInForeground()

    Memeriksa apakah pelacakan lokasi sedang berlangsung.

  • Kelas: LocationTracker

    stop()

    Menghentikan proses melacak lokasi pengguna.

  • Kelas: LocationTracker

    startTracking()

    Memulai proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak.

  • Kelas: LocationTracker

    startBackground(mode: BackgroundTrackingMode, serviceCallback: ServiceCallback)

    Memulai proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak saat aplikasi berada di latar belakang. BackgroundTrackingModememiliki opsi berikut:

    • ACTIVE_TRACKING: Opsi ini secara aktif melacak pembaruan lokasi pengguna.

    • BATTERY_SAVER_TRACKING: Opsi ini melacak pembaruan lokasi pengguna setiap 15 menit.

  • Kelas: LocationTracker

    stopBackgroundService()

    Menghentikan proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak saat aplikasi berada di latar belakang.

  • Kelas: LocationTracker

    getTrackerDeviceLocation()

    Mengambil lokasi perangkat dari layanan Lokasi Amazon.

  • Kelas: LocationTracker

    getDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)

    Mengambil lokasi perangkat saat ini dari klien penyedia lokasi gabungan dan mengunggahnya ke pelacak Lokasi Amazon.

  • Kelas: LocationTracker

    uploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)

    Mengunggah lokasi perangkat ke layanan Lokasi Amazon setelah memfilter berdasarkan filter lokasi yang dikonfigurasi.

  • Kelas: LocationTracker

    enableFilter(filter: LocationFilter)

    Mengaktifkan filter lokasi tertentu.

  • Kelas: LocationTracker

    checkFilterIsExistsAndUpdateValue(filter: LocationFilter)

    Nonaktifkan filter lokasi tertentu.

  • Kelas: 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())

    Ini menginisialisasi LocationTrackerConfig dengan nilai parameter yang ditentukan pengguna. Jika nilai parameter tidak disediakan, itu akan diatur ke nilai default.

  • Kelas: LocationFilter

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

    LocationFilterIni adalah protokol yang dapat diterapkan pengguna untuk implementasi filter khusus mereka. Anda perlu mengimplementasikan shouldUpload fungsi untuk membandingkan lokasi sebelumnya dan saat ini dan kembali jika lokasi saat ini harus diunggah.

Contoh

Contoh kode berikut menunjukkan fungsionalitas SDK pelacakan seluler.

Contoh ini menggunakan LocationTracker untuk memulai dan menghentikan pelacakan di latar belakang:

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