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-ios
paket dan klik Add Package. -
Pilih produk
AmazonLocationiOSTrackingSDK
paket 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.plist
file 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
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.
BackgroundTrackingMode
memiliki 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)
LocationFilter
Ini adalah protokol yang dapat diterapkan pengguna untuk implementasi filter khusus mereka. Seorang pengguna perlu mengimplementasikanshouldUpload
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
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
, karenaLocationCredentialsProvider
parameter diperlukan untuk membuatLocationTracker
objek:// 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
LocationCredentialsProvider
danLocationTrackerConfig
untuk membuatLocationTracker
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)
, atauconstructor(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.
BackgroundTrackingMode
memiliki 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
LocationFilter
Ini adalah protokol yang dapat diterapkan pengguna untuk implementasi filter khusus mereka. Anda perlu mengimplementasikanshouldUpload
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()