Buat aplikasi Android - Amazon Location Service

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

Buat aplikasi Android

Ikuti prosedur ini untuk membuat aplikasi iOS menggunakan Amazon Location Service.

Kloning file proyek dari GitHub.

Anda dapat menghasilkan sumber daya Amazon Location Service setelah AWS akun Anda siap. Sumber daya ini akan sangat penting untuk mengeksekusi cuplikan kode yang disediakan.

catatan

Jika Anda belum membuat AWS akun, silakan buat AWS akun.

Untuk memulai, Anda perlu membuat Id Kolam Identitas Amazon Cognito, gunakan prosedur berikut:

  1. Di AWS konsol, navigasikan ke layanan Amazon Cognito dan kemudian pilih Identity pool dari menu sebelah kiri dan pilih Create Identity pool.

  2. Pastikan Akses Tamu dicentang, dan tekan Berikutnya untuk melanjutkan.

  3. Selanjutnya buat peran IAM baru atau Gunakan peran IAM yang ada.

  4. Masukkan nama kumpulan Identity, dan pastikan Identity Pool memiliki akses ke (geo) sumber daya Lokasi Amazon untuk peta dan pelacak yang akan Anda buat di prosedur berikutnya.

Sekarang Anda perlu membuat dan menata peta di konsol Lokasi AWS Amazon, gunakan prosedur berikut:

  1. Arahkan ke bagian Maps di konsol Lokasi Amazon dan pilih Buat Peta untuk melihat pratinjau gaya peta yang tersedia.

  2. Berikan sumber daya peta baru Nama dan Deskripsi. Rekam nama yang Anda tetapkan ke sumber daya peta, seperti yang digunakan nanti dalam tutorial.

  3. Saat memilih gaya peta, pertimbangkan penyedia data peta. Lihat bagian 82 dari ketentuan AWS layanan untuk detail selengkapnya.

  4. Terima Syarat dan Ketentuan Lokasi Amazon, lalu pilih Buat Peta. Setelah peta dibuat, Anda dapat berinteraksi dengan peta dengan memperbesar, memperkecil, atau menggeser ke segala arah.

Untuk membuat pelacak menggunakan konsol Lokasi Amazon

  1. Buka konsol Amazon Location Service.

  2. Di panel navigasi kiri, pilih Pelacak.

  3. Pilih Buat pelacak.

  4. Isi semua bidang yang diperlukan.

  5. Di bawah Pemfilteran posisi, pilih opsi yang paling sesuai dengan cara Anda ingin menggunakan sumber daya pelacak Anda. Jika Anda tidak mengatur Pemfilteran posisi, pengaturan defaultnya adalah TimeBased. Untuk informasi selengkapnya, lihat Pelacak dalam panduan ini, dan PositionFiltering di Referensi API Amazon Location Service Trackers.

  6. Pilih Buat pelacak untuk menyelesaikan.

Saat membuat koleksi geofence, Anda dapat menggunakan konsol, API, atau CLI. Prosedur berikut memandu Anda melalui setiap opsi.

Buat koleksi geofence menggunakan konsol Lokasi Amazon:

  1. Buka konsol Amazon Location Service di https://console.aws.amazon.com/location/.

  2. Di panel navigasi kiri, pilih Geofence Collections.

  3. Pilih Buat koleksi geofence.

  4. Berikan nama dan deskripsi untuk koleksi.

  5. Di bawah EventBridge aturan dengan CloudWatch sebagai target, Anda dapat membuat EventBridge aturan opsional untuk mulai bereaksi terhadap peristiwa geofence. Hal ini memungkinkan Amazon Location untuk mempublikasikan peristiwa ke Amazon CloudWatch Logs.

  6. Pilih Buat koleksi geofence.

Buat koleksi geofence menggunakan Lokasi Amazon: APIs

Gunakan CreateGeofenceCollection operasi dari Amazon Location Geofences APIs. Contoh berikut menggunakan permintaan API untuk membuat koleksi geofence yang disebut. GOECOLLECTION_NAME

POST /geofencing/v0/collections Content-type: application/json { "CollectionName": "GOECOLLECTION_NAME", "Description": "Geofence collection 1 for shopping center", "Tags": { "Tag1" : "Value1" } }

Buat koleksi geofence menggunakan AWS CLI perintah:

Gunakan perintah create-geofence-collection. Contoh berikut menggunakan AWS CLI untuk membuat koleksi geofence yang disebut. GOECOLLECTION_NAME

aws location \ create-geofence-collection \ --collection-name "GOECOLLECTION_NAME" \ --description "Shopping center geofence collection" \ --tags Tag1=Value1  

Untuk menautkan pelacak ke koleksi geofence, Anda dapat menggunakan konsol, API, atau CLI. Prosedur berikut memandu Anda melalui setiap opsi.

Menautkan sumber daya pelacak ke koleksi geofence menggunakan konsol Amazon Location Service:

  1. Buka konsol Lokasi Amazon.

  2. Di panel navigasi kiri, pilih Pelacak.

  3. Di bawah Pelacak Perangkat, pilih tautan nama pelacak target.

  4. Di bawah Koleksi Geofence Tertaut, pilih Link Geofence Collection.

  5. Di jendela Linked Geofence Collection, pilih koleksi geofence dari menu tarik-turun.

  6. Pilih Tautkan.

  7. Setelah Anda menautkan sumber daya pelacak, itu akan diberi status Aktif.

Menautkan sumber daya pelacak ke koleksi geofence menggunakan Lokasi Amazon: APIs

Gunakan AsssociateTrackerConsumer operasi dari Pelacak APIs Lokasi Amazon. Contoh berikut menggunakan permintaan API yang terkait ExampleTracker dengan koleksi geofence menggunakan Amazon Resource Name (ARN).

POST /tracking/v0/trackers/ExampleTracker/consumers Content-type: application/json { "ConsumerArn": "arn:aws:geo:us-west-2:123456789012:geofence-collection/GOECOLLECTION_NAME" }

Tautkan sumber daya pelacak ke koleksi geofence menggunakan perintah: AWS CLI

Gunakan perintah associate-tracker-consumer . Contoh berikut menggunakan AWS CLI untuk membuat koleksi geofence yang disebut. GOECOLLECTION_NAME

aws location \ associate-tracker-consumer \ --consumer-arn "arn:aws:geo:us-west-2:123456789012:geofence-collection/GOECOLLECTION_NAME" \ --tracker-name "ExampleTracker"

Buat fungsi Lambda:

Untuk membuat koneksi antara AWS IoT Core dan Amazon Location Service, Anda memerlukan AWS Lambda fungsi untuk memproses pesan yang diteruskan oleh EventBridge CloudWatch peristiwa. Fungsi ini akan mengekstrak data posisi apa pun, memformatnya untuk Amazon Location Service, dan mengirimkannya melalui Amazon Location Tracker API. Anda dapat membuat fungsi ini melalui AWS Lambda konsol, atau Anda dapat menggunakan AWS Command Line Interface (AWS CLI) atau AWS Lambda APIs. Untuk membuat fungsi Lambda yang menerbitkan pembaruan posisi ke Lokasi Amazon menggunakan konsol:

  1. Buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/.

  2. Dari navigasi kiri, pilih Fungsi.

  3. Pilih Create Function, dan pastikan bahwa Author dari awal dipilih.

  4. Isi kotak-kotak berikut:

    • sebuah nama Fungsi

    • untuk opsi Runtime, pilih Node.js 16.x.

  5. Pilih Buat fungsi.

  6. Pilih tab Kode untuk membuka editor.

  7. Timpa kode placeholder di index.js dengan yang berikut:

    const AWS = require('aws-sdk') const iot = new AWS.Iot(); exports.handler =  function(event) { console.log("event===>>>", JSON.stringify(event)); var param = { endpointType: "iot:Data-ATS" }; iot.describeEndpoint(param, function(err, data) { if (err) { console.log("error===>>>", err, err.stack); // an error occurred } else {       var endp = data['endpointAddress'];       const iotdata = new AWS.IotData({endpoint: endp});           const trackerEvent = event["detail"]["EventType"];       const src = event["source"];       const time = event["time"];       const gfId = event["detail"]["GeofenceId"];       const resources = event["resources"][0];         const splitResources = resources.split(".");         const geofenceCollection = splitResources[splitResources.length - 1];       const coordinates = event["detail"]["Position"];                                     const deviceId = event["detail"]["DeviceId"];       console.log("deviceId===>>>", deviceId);       const msg =  {           "trackerEventType" : trackerEvent,           "source" : src,           "eventTime" : time,           "geofenceId" : gfId,           "coordinates": coordinates,           "geofenceCollection": geofenceCollection       }; const params = { topic: `${deviceId}/tracker`, payload: JSON.stringify(msg), qos: 0  }; iotdata.publish(params, function(err, data) { if (err) { console.log("error===>>>", err, err.stack); // an error occurred } else { console.log("Ladmbda triggered===>>>", trackerEvent);  // successful response    } }); } }); }
  8. Pilih Deploy untuk menyimpan fungsi yang diperbarui.

  9. Pilih tab Konfigurasi.

  10. Di bagian Pemicu, klik Tambahkan pemicu.

  11. Pilih EventBridge (CloudWatch Acara) di bidang Sumber.

  12. Pilih opsi radio `Aturan yang Ada.

  13. Masukkan nama aturan seperti ini `AmazonLocationMonitor-GEOFENCECOLLECTION_NAME`.

  14. Klik pada tombol Tambah.

  15. Ini juga akan melampirkan `Pernyataan kebijakan berbasis sumber daya` di tab izin

Klien Uji MQTT

  1. Buka https://console.aws.amazon.com/iot/.

  2. Di panel navigasi kiri, pilih klien pengujian MQTT.

  3. Anda akan melihat bagian berjudul MQTT test client di mana Anda dapat mengonfigurasi koneksi MQTT Anda.

  4. Setelah mengkonfigurasi pengaturan yang diperlukan, klik tombol Connect untuk membuat koneksi ke broker MQTT menggunakan parameter yang disediakan.

  5. Catat nilai Endpoint.

Setelah terhubung, Anda dapat berlangganan topik MQTT atau mempublikasikan pesan ke topik menggunakan bidang masukan masing-masing yang disediakan di antarmuka klien pengujian MQTT. Selanjutnya Anda akan melampirkan Kebijakan MQTT:

  1. Di menu sebelah kiri, di bawah opsi Kelola perluas Keamanan dan klik Kebijakan.

  2. Klik tombol Buat Kebijakan.

  3. Masukkan nama kebijakan.

  4. Pada Dokumen Kebijakan pilih tab JSON.

  5. Salin tempel kebijakan yang ditunjukkan di bawah ini, tetapi pastikan untuk memperbarui semua elemen dengan Anda REGION danACCOUNT_ID:

    { "Version": "2012-10-17", "Statement": [     {       "Action": [         "iot:Connect",         "iot:Publish",         "iot:Subscribe",         "iot:Receive"     ],       "Resource": [         "arn:aws:iot:REGION:ACCOUNT_ID:client/${cognito-identity.amazonaws.com:sub}",     "arn:aws:iot:REGION:ACCOUNT_ID:topic/${cognito-identity.amazonaws.com:sub}", "arn:aws:iot:REGION:ACCOUNT_ID:topicfilter/${cognito-identity.amazonaws.com:sub}/", "arn:aws:iot:REGION:ACCOUNT_ID:topic/${cognito-identity.amazonaws.com:sub}/tracker" ], "Effect": "Allow" } ] }
    catatan

    Catat nama kebijakan dan nama topik untuk digunakan dalam prosedur berikutnya.

  6. Pilih tombol Create untuk menyelesaikan.

Setelah menyelesaikan prosedur sebelumnya, Anda sekarang akan memperbarui izin untuk peran tamu sebagai berikut:

  1. Arahkan ke Amazon Cognito dan buka kumpulan identitas Anda. Kemudian, lanjutkan ke akses pengguna dan pilih peran tamu.

  2. Klik kebijakan izin untuk mengaktifkan pengeditan.

    { 'Version': '2012-10-17 ', 'Statement': [ { 'Action': [ 'geo:GetMap*', 'geo:BatchUpdateDevicePosition', 'geo:BatchEvaluateGeofences', 'iot:Subscribe', 'iot:Publish', 'iot:Connect', 'iot:Receive', 'iot:AttachPrincipalPolicy', 'iot:AttachPolicy', 'iot:DetachPrincipalPolicy', 'iot:DetachPolicy' ], 'Resource': [ 'arn:aws:geo:us-east-1:{USER_ID}:map/{MAP_NAME}', 'arn:aws:geo:us-east-1:{USER_ID}:tracker/{TRACKER_NAME}', 'arn:aws:geo:us-east-1:{USER_ID}:geofence-collection/{GEOFENCE_COLLECTION_NAME}', 'arn:aws:iot:us-east-1:{USER_ID}:client/${cognito-identity.amazonaws.com:sub}', 'arn:aws:iot:us-east-1:{USER_ID}:topic/${cognito-identity.amazonaws.com:sub}', 'arn:aws:iot:us-east-1:{USER_ID}:topicfilter/${cognito-identity.amazonaws.com:sub}/*', 'arn:aws:iot:us-east-1:{USER_ID}:topic/${cognito-identity.amazonaws.com:sub}/tracker' ], 'Effect': 'Allow' }, { 'Condition': { 'StringEquals': { 'cognito-identity.amazonaws.com:sub': '${cognito-identity.amazonaws.com:sub}' } }, 'Action': [ 'iot:AttachPolicy', 'iot:DetachPolicy', 'iot:AttachPrincipalPolicy', 'iot:DetachPrincipalPolicy' ], 'Resource': [ '*' ], 'Effect': 'Allow' } ] }
  3. Dengan perubahan kebijakan di atas, semua AWS sumber daya yang diperlukan sekarang dikonfigurasi dengan tepat untuk aplikasi.

  1. Buka Android Studio dan pilih New dan kemudian Project dari Version Control.

  2. Arahkan ke menu File di sudut kiri atas Android Studio.

  3. Pilih “Baru” dari menu tarik-turun.

  4. Pilih “Proyek dari Kontrol Versi”.

  5. Masukkan URL Repositori Di kotak dialog yang muncul, temukan bidang bertanda “URL”.

  6. Salin dan tempel URL berikut untuk aplikasi sampel ke bidang ini: https://github.com/aws-geospatial/amazon-location-samples-android.git

  7. Tentukan direktori tempat Anda ingin mengkloning repositori. Gunakan direktori default atau pilih lokasi khusus.

  8. Setelah mengatur URL repositori dan preferensi direktori, tekan tombol “Klon”. Android Studio akan melanjutkan untuk mengkloning repositori ke lokasi yang Anda tentukan.

  9. Anda sekarang telah mengkloning aplikasi ke mesin Anda dan dapat mulai menggunakannya.

Untuk menggunakan sampel ikuti prosedur ini:

  • Buat custom.properties:

    Untuk mengonfigurasi custom.properties file Anda, ikuti langkah-langkah berikut:

    1. Buka editor teks atau IDE pilihan Anda.

    2. Buat file baru.

    3. Simpan file dengan namacustom.properties.

    4. Perbarui custom.properties dengan contoh kode berikut, dan gantiMQTT_END_POINT,, POLICY_NAMEGEOFENCE_COLLECTION_NAME, dan TOPIC_TRACKER dengan nilai aktual:

      MQTT_END_POINT=xxxxxxxxxxxxx-xxx.xxx.us-east-1.amazonaws.com POLICY_NAME=xxxxxxxxx GEOFENCE_COLLECTION_NAME=xxxxxxxxxxxxxxxxx TOPIC_TRACKER=xxxxxxxxxx
    5. Bersihkan dan Bangun kembali proyek. Setelah ini, Anda dapat menjalankan proyek.

  • Masuk:

    Untuk masuk ke aplikasi, ikuti langkah-langkah di bawah ini:

    1. Tekan tombol Masuk.

    2. Berikan Identity Pool Id, nama Tracker, dan nama Map.

    3. Tekan Masuk lagi untuk menyelesaikan.

  • Kelola Filter:

    Buka layar konfigurasi, dan lakukan hal berikut:

    1. Alihkan filter on/off menggunakan UI sakelar.

    2. Perbarui filter Waktu dan Jarak bila diperlukan.

  • Operasi Pelacakan:

    Buka layar pelacakan dan lakukan hal berikut:

    • Anda dapat memulai dan menghentikan pelacakan di latar depan, latar belakang, atau dalam mode penghemat baterai dengan menekan tombol masing-masing.