Pelacakan Seluler iOS SDK - Amazon Location Service

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

Pelacakan Seluler iOS SDK

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

Pelacakan iOS SDK tersedia di GitHub: Pelacakan Seluler Lokasi Amazon SDK untuk iOS.

Bagian ini mencakup topik-topik berikut untuk iOS pelacakan seluler Lokasi AmazonSDK:

Penginstalan

Gunakan prosedur berikut untuk menginstal pelacakan seluler SDK untuk iOS:

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

  2. Ketik berikut iniURL: 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 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 kredensil 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

iOS pelacakan seluler Lokasi Amazon SDK 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 SDK pelacakan iOS Mobile

Pelacakan seluler Lokasi Amazon SDK 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 Pelacakan Seluler Lokasi Amazon SDK untuk iOS.

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