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
Bagian ini mencakup topik-topik berikut untuk Amazon Location mobile tracking iOS SDK:
Penginstalan
Gunakan prosedur berikut untuk menginstal SDK pelacakan seluler untuk iOS:
-
Dalam proyek Xcode Anda, buka File dan pilih Add Package Dependencies.
-
Ketik URL berikut: https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios/
ke dalam bilah pencarian dan tekan tombol enter. -
Pilih
amazon-location-mobile-tracking-sdk-iospaket dan klik Add Package. -
Pilih produk
AmazonLocationiOSTrackingSDKpaket dan klik Add Package.
Penggunaan
Prosedur berikut menunjukkan cara membuat pembantu otentikasi menggunakan kredensional dari Amazon Cognito.
-
Setelah menginstal perpustakaan, Anda perlu menambahkan satu atau kedua deskripsi ke dalam
info.plistfile Anda:Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description -
Selanjutnya, impor AuthHelper di kelas Anda:
import AmazonLocationiOSAuthSDKimport AmazonLocationiOSTrackingSDK -
Kemudian Anda akan membuat
AuthHelperobjek 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:
LocationTrackerinit(provider: LocationCredentialsProvider, trackerName: String, config: LocationTrackerConfig? = nil)Ini adalah fungsi penginisialisasi untuk membuat objek.
LocationTrackerIni membutuhkan contohLocationCredentialsProvider,trackerNamedan secara opsional sebuah instance dari.LocationTrackingConfigJika konfigurasi tidak disediakan, konfigurasi akan diinisialisasi dengan nilai default. -
Kelas:
LocationTrackersetTrackerConfig(config: LocationTrackerConfig)Ini menetapkan konfigurasi Tracker untuk berlaku kapan saja setelah inisialisasi pelacak lokasi.
-
Kelas:
LocationTrackergetTrackerConfig()Ini membuat konfigurasi pelacakan lokasi untuk digunakan atau dimodifikasi di aplikasi Anda.
Pengembalian:
LocationTrackerConfig -
Kelas:
LocationTrackergetDeviceId()Mendapat Id perangkat yang dihasilkan pelacak lokasi.
Pengembalian:
String? -
Kelas:
LocationTrackerstartTracking()Memulai proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak.
-
Kelas:
LocationTrackerresumeTracking()Melanjutkan proses mengakses lokasi pengguna dan mengirimkannya ke pelacak. AWS
-
Kelas:
LocationTrackerstopTracking()Menghentikan proses melacak lokasi pengguna.
-
Kelas:
LocationTrackerstartBackgroundTracking(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:
LocationTrackerresumeBackgroundTracking(mode: BackgroundTrackingMode)Melanjutkan proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak saat aplikasi berada di latar belakang.
-
Kelas:
LocationTrackerstopBackgroundTracking()Menghentikan proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak saat aplikasi berada di latar belakang.
-
Kelas:
LocationTrackergetTrackerDeviceLocation(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:
LocationTrackerConfiginit()Ini menginisialisasi LocationTrackerConfig dengan nilai default.
-
Kelas:
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)Ini menginisialisasi
LocationTrackerConfigdengan nilai parameter yang ditentukan pengguna. Jika nilai parameter tidak disediakan itu akan diatur ke nilai default. -
Kelas:
LocationFiltershouldUpload(currentLocation: LocationEntity, previousLocation: LocationEntity?, trackerConfig: LocationTrackerConfig)LocationFilterIni adalah protokol yang dapat diterapkan pengguna untuk implementasi filter khusus mereka. Seorang pengguna perlu mengimplementasikanshouldUploadfungsi 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
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.
-
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 -
Selanjutnya buat
AuthHelper, karenaLocationCredentialsProviderparameter diperlukan untuk membuatLocationTrackerobjek:// Create an authentication helper using credentials from Amazon Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id") -
Sekarang, gunakan
LocationCredentialsProviderdanLocationTrackerConfiguntuk membuatLocationTrackerobjek: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:
LocationTrackerconstructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,trackerName: String), atauconstructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,clientConfig: LocationTrackerConfig)Ini adalah fungsi penginisialisasi untuk membuat objek.
LocationTrackerIni membutuhkan contohLocationCredentialsProvider,trackerNamedan secara opsional sebuah instance dari.LocationTrackingConfigJika konfigurasi tidak disediakan, konfigurasi akan diinisialisasi dengan nilai default. -
Kelas:
LocationTrackerstart(locationTrackingCallback: LocationTrackingCallback)Memulai proses mengakses lokasi pengguna dan mengirimkannya ke pelacak Lokasi Amazon.
-
Kelas:
LocationTrackerisTrackingInForeground()Memeriksa apakah pelacakan lokasi sedang berlangsung.
-
Kelas:
LocationTrackerstop()Menghentikan proses melacak lokasi pengguna.
-
Kelas:
LocationTrackerstartTracking()Memulai proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak.
-
Kelas:
LocationTrackerstartBackground(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:
LocationTrackerstopBackgroundService()Menghentikan proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak saat aplikasi berada di latar belakang.
-
Kelas:
LocationTrackergetTrackerDeviceLocation()Mengambil lokasi perangkat dari layanan Lokasi Amazon.
-
Kelas:
LocationTrackergetDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)Mengambil lokasi perangkat saat ini dari klien penyedia lokasi gabungan dan mengunggahnya ke pelacak Lokasi Amazon.
-
Kelas:
LocationTrackeruploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)Mengunggah lokasi perangkat ke layanan Lokasi Amazon setelah memfilter berdasarkan filter lokasi yang dikonfigurasi.
-
Kelas:
LocationTrackerenableFilter(filter: LocationFilter)Mengaktifkan filter lokasi tertentu.
-
Kelas:
LocationTrackercheckFilterIsExistsAndUpdateValue(filter: LocationFilter)Nonaktifkan filter lokasi tertentu.
-
Kelas:
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())Ini menginisialisasi
LocationTrackerConfigdengan nilai parameter yang ditentukan pengguna. Jika nilai parameter tidak disediakan, itu akan diatur ke nilai default. -
Kelas:
LocationFiltershouldUpload(currentLocation: LocationEntry, previousLocation: LocationEntry?): BooleanLocationFilterIni adalah protokol yang dapat diterapkan pengguna untuk implementasi filter khusus mereka. Anda perlu mengimplementasikanshouldUploadfungsi 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()