Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Google Play Service: Awareness API

by
Difficulty:IntermediateLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Sandi Muamar (you can also view the original English article)

Membuat aplikasi context-aware adalah salah satu cara terbaik untuk menawarkan layanan yang berguna untuk pengguna Anda. Sementara masih ada beberapa cara untuk melakukan ini — termasuk geofences, activity recognition dan location service lainnya-Google telah baru saja merilis Awareness API, yang memungkinkan developer untuk membuat aplikasi yang cerdas bereaksi terhadap real word user situasi. Awareness API menggabungkan Places API, Location API, Activity Recognition, dan Nearby API, serta menambahkan dukungan untuk headphone state dan cuaca deteksi.

Dalam tutorial ini Anda akan belajar tentang Awareness API dan cara mengakses snapshot dari data, serta cara membuat listener (dikenal sebagai fences, mengambil nama mereka dari geofences) untuk kombinasi pengguna kondisi yang sesuai dengan tujuan aplikasi Anda. Hal ini dapat berguna untuk berbagai macam aplikasi, seperti location-based games, menawarkan kupon untuk pengguna di toko-toko, dan memulai sebuah aplikasi musik ketika Anda mendeteksi pengguna berolahraga. Semua kode untuk aplikasi sampel ini dapat ditemukan pada GitHub.

1. Menyiapkan Developer Console

Sebelum menyelam ke dalam aplikasi Android Anda, Anda akan perlu untuk mengatur Google Play Service melalui Google API Console. Jika Anda sudah memiliki proyek yang dibuat, Anda dapat melewatkan langkah pertama bagian ini. Jika tidak, Anda dapat mengklik link di atas dan Ikuti sepanjang untuk membuat proyek baru untuk aplikasi Anda.

Langkah 1: Menciptakan sebuah proyek

Untuk membuat sebuah proyek baru, klik pada tombol biru Create Project di pusat atas layar.

Google API Console Create Project

Ini menyajikan Anda dengan sebuah dialog yang meminta untuk nama proyek. Untuk tutorial ini, saya telah membuat sebuah proyek yang disebut TutsPlusAwareness. Ada beberapa pembatasan pada apa yang Anda dapat nama proyek Anda sebagai hanya huruf, angka, kutipan, tanda hubung, spasi, dan seru karakter yang diperbolehkan .

Google API Console New project creation screen

Setelah Anda menekan Create, dialog muncul di sudut kanan bawah halaman yang menunjukkan bahwa proyek yang sedang dibuat. Setelah sudah menghilang, proyek Anda akan tersedia untuk mengatur. Anda akan melihat sebuah layar yang mirip dengan berikut. Jika tidak, klik pada logo Google API di sudut kiri atas untuk dibawa ke layar manager API.

Google API Console Overview screen

Langkah 2: Mengaktifkan API yang dibutuhkan

Dari layar Google APIs Overview, pilih kotak pencarian dan Cari untuk Awareness API.

Google API Console Enable Awareness API

Setelah Anda memilih Awareness API dari hasil yang dikembalikan, klik pada tombol Enable biru untuk memungkinkan aplikasi Anda untuk menggunakan Awareness API. Jika ini adalah pertama API Anda telah diaktifkan, Anda akan diminta untuk membuat satu set kredensial. Lanjutkan ke halaman Credentials untuk langkah 3 dari tutorial ini.

Google API Console Go to Credentials button location

Selain Awarenes API, ada API tambahan yang Anda mungkin perlu untuk mengaktifkan. Jika aplikasi Anda menggunakan fungsi Places API Awareness, Anda akan perlu untuk mengaktifkan Google Places API untuk Android.

Google API Console Enable Places API

Jika aplikasi Anda menggunakan beacon, Anda juga akan perlu untuk mengaktifkan Nearby Messages API.

Langkah 3: Membuat Android API Key

Untuk menggunakan enabled APIs, Anda akan perlu untuk generate API key untuk aplikasi Android Anda. Pada halaman kredensial untuk proyek Google Anda, pilih Awareness API dari atas dropdown menu dan Android dari kedua.

Google API Console Add credentials to your project

Selanjutnya Anda akan dibawa ke layar dimana Anda dapat memasukkan nama paket untuk aplikasi Anda dan sertifikat SHA1 untuk app signing key. Untuk mendapatkan signing key untuk tombol debug di Linux atau OS X, masukkan perintah berikut dalam jendela terminal.

Pada Windows, Anda dapat menjalankan perintah yang sama dengan path yang ditetapkan untuk lokasi file debug.keystore Anda.

Google API Console Add SHA1 fingerprint and package name to project

Setelah Anda klik tombol Create API key, Anda akan diberikan API key yang Anda akan perlu menggunakan dalam aplikasi Android Anda.

Google API Console API Key

2. menyiapkan proyek Android

Setelah Anda memiliki API key yang dibuat dan api tepat diaktifkan, sekarang saatnya untuk mulai mendirikan proyek Android Anda. Untuk tutorial ini, kita akan membuat sebuah aplikasi tes untuk belajar API.

Untuk menunjukkan semua fitur Awareness API, tutorial ini akan fokus pada menggunakan daftar sederhana mewakili setiap fitur yang digunakan. Meskipun rincian membuat daftar ini tidak akan dibahas, Anda dapat menemukan sebuah implementasi lengkap dalam sumber GitHub untuk tutorial ini.

Langkah 1: Mengatur Play Services

Pertama Anda perlu untuk memasukkan Play Service Perpustakaan dalam file build.gradle Anda. Sementara Anda dapat memasukkan semua layanan Google Play, yang terbaik untuk menyertakan hanya paket-paket yang Anda butuhkan untuk aplikasi Anda.

Dalam kasus ini, Awareness API tersedia dalam paket ContextManager, dan it dapat dimasukkan dalam proyek Anda dengan menambahkan baris berikut dalam Anda dependencies node. Anda juga akan ingin untuk memastikan bahwa perpustakaan AppCompat disertakan, seperti ini akan digunakan untuk memeriksa izin pada Marshmallow dan di atas perangkat.

Setelah Anda menambahkan baris di atas, sync proyek Anda dan membuka file strings.xml untuk proyek Anda. Anda akan ingin untuk menempatkan API key Anda dari Google API konsol ke nilai string.

Setelah Anda menambahkan API key Anda, Anda akan perlu untuk membuka file AndroidManifest.xml proyek Anda. Tergantung pada apa fitur Awareness API yang Anda gunakan, Anda akan perlu memiliki permission untuk aplikasi Anda. Jika aplikasi Anda menggunakan beacon, lokasi, tempat atau cuaca fungsi Awareness API, maka Anda akan perlu untuk memasukkan izin ACCESS_FINE_LOCATION. Jika Anda perlu menggunakan activity recognition fungsi, maka Anda akan memerlukan izin ACTIVITY_RECOGNITION.

Selanjutnya Anda akan perlu untuk menyatakan meta-data dalam application node yang mengikat aplikasi Anda ke Google API service. Tergantung pada apa aplikasi Anda menggunakan, Anda akan perlu juga memasukan com.google.android.geo dan com.google.android.nearby metadata untuk menggunakan fitur lokasi, Beacon dan place.

Selanjutnya Anda akan perlu untuk membuka MainActivity.java file. Tambahkan antarmuka GoogleApiClient.OnConnectionFailedListener kelas Anda dan terhubung ke Google Play Service dan Awaremess API di metode onCreate(Bundle) Anda.

Langkah 2: Permission

Sekarang Play Services sudah dikonfigurasi dalam aplikasi Android Anda, Anda akan perlu untuk memastikan bahwa pengguna Android Marshmallow atau lebih tinggi telah diberikan permission untuk aplikasi Anda untuk menggunakan lokasi mereka. Anda dapat memeriksa permission ini di onCreate(Bundle) dan sebelum Anda mengakses semua fitur yang memerlukan permission lokasi untuk menghindari crash dalam aplikasi Anda.

Jika permission lokasi tidak diberikan, Anda kemudian dapat meminta bahwa pengguna mengabulkannya.

Hal ini akan menyebabkan sistem dialog muncul meminta pengguna jika mereka ingin memberikan ijin untuk aplikasi Anda untuk mengetahui lokasi mereka.

Permissions dialog for location

Ketika pengguna telah menanggapi, onRequestPermissionsResult() callback akan menerima hasil, dan aplikasi Anda dapat menjawab sesuai.

Pada titik ini Anda harus selesai menyiapkan aplikasi Anda untuk menggunakan Awareness API.

3. menggunakan Snapshot API

Ketika Anda ingin mengumpulkan informasi tentang pengguna konteks saat ini, Anda dapat menggunakan fungsi snapshot Awareness API. API ini akan mengumpulkan informasi tergantung pada jenis API panggilan yang dibuat, dan akan cache informasi ini untuk akses cepat di berbagai aplikasi.

Headphone

Salah satu tambahan baru untuk bermain layanan melalui Awareness APIadalah kemampuan untuk mendeteksi perangkat headphone state (terpasang atau tidak). Ini dapat dilakukan oleh getHeadphoneState() di Awareness API dan membaca HeadphoneState dari HeadphoneStateResult.

Setelah Anda mengetahui state headphone, aplikasi Anda dapat melakukan tindakan apapun yang diperlukan berdasarkan informasi tersebut.

Lokasi

Meskipun sebelumnya tersedia sebagai sebuah komponen dalam Google Play Service  fitur lokasi Awareness API telah dioptimalkan untuk penggunaan efisiensi dan baterai. Daripada menggunakan Location API tradisional dan menerima lokasi interval waktu tertentu, Anda dapat meminta sebuah snapshot kali lokasi seperti.

Seperti yang Anda lihat, pertama Anda harus memverifikasi bahwa pengguna telah diberikan location permisssion. Jika mereka memiliki, Anda dapat mengambil objek Location standar dengan sejumlah besar data tentang pengguna lokasi dan kecepatan, serta informasi tentang keakuratan data ini.

Anda akan ingin untuk memastikan bahwa bagian tertentu dari informasi yang ada sebelum menggunakannya, sebagai beberapa data mungkin tidak tersedia. Menjalankan kode ini harus output semua data yang tersedia untuk log sistem Android.

Place

Sementara tidak kuat sebagai standar Places API,  Awareness API menyediakan cara cepat dan mudah digunakan untuk mengumpulkan informasi tentang tempat-tempat dekat pengguna. Panggilan API ini akan mengembalikan List PlaceLikelihood objek yang berisi Place dan float mewakili bagaimana besar kemungkinan pengguna di tempat itu (maka nama objek).

Setiap Place objek mungkin berisi nama, alamat, nomor telepon, jenis tempat, penilaian pengguna, dan informasi berguna lainnya. Anda dapat meminta tempat terdekat untuk pengguna setelah melakukan verifikasi bahwa pengguna memiliki izin lokasi yang diberikan.

Ketika menjalankan metode di atas, Anda akan melihat output yang mirip dengan berikut di konsol Android. Jika nilai tidak tersedia untuk beberapa, -1 akan dikembalikan.

Cuaca

Tambahan baru ke Google Play Service melalui Awareness API adalah kemampuan untuk mendapatkan kondisi cuaca untuk pengguna. Fitur ini juga memerlukan izin lokasi untuk pengguna Marshmallow dan kemudian.

Menggunakan permintaan ini, Anda akan bisa mendapatkan suhu di daerah pengguna di Fahrenheit atau Celcius. Anda juga dapat mengetahui apa rasanya suhu, titik embun (suhu yang mana air di udara dapat mulai mengembun menjadi embun), persentase kelembaban, dan kondisi cuaca.

Kode di atas harus output sesuatu yang mirip dengan ini.

Satu hal yang penting untuk dicatat di sini adalah bahwa cuaca kondisi nilai akan disimpan sebagai int. Seluruh daftar nilai-nilai kondisi dapat ditemukan dalam objek cuaca.

Aktivitas

Aktivitas user Anda akan memainkan peranan besar dalam bagaimana mereka berinteraksi dengan perangkat mereka, dan mendeteksi bahwa aktivitas akan memungkinkan Anda untuk memberikan pengalaman pengguna yang lebih fluid.

Misalnya, jika Anda memiliki sebuah aplikasi Kebugaran, Anda mungkin ingin mendeteksi ketika pengguna berjalan sehingga Anda dapat mulai merekam sesi Google Fit, atau Anda mungkin ingin mengirim pemberitahuan kepada pengguna Anda jika Anda mendeteksi bahwa mereka telah diam selama terlalu banyak jam sehari.

Menggunakan panggilan getDetectedActivity() di API kesadaran, Anda bisa mendapatkan daftar kemungkinan kegiatan dan berapa lama pengguna telah melakukan masing-masing.

Metode di atas akan menampilkan aktivitas kemungkinan bagi pengguna, berapa lama mereka sudah dalam keadaan itu, dan daftar semua kemungkinan kegiatan.

Nilai-nilai tipe DetectedActivity dapat dipetakan ke nilai berikut:

Beacon

Jenis terakhir dari snapshot — dan paling sulit untuk mengatur karena memerlukan real-world komponen — melibatkan Beacon BLE (Bluetooth Low Energy). Sementara Nearby API adalah di luar cakupan tutorial ini, Anda dapat menginisialisasi Beacon untuk proyek Anda sendiri Google Service yang menggunakan Google Tool Beacon app.

Configured beacon in Beacon Tools app

Penting untuk dicatat adalah bahwa sekali Anda telah terdaftar beacon untuk sebuah proyek Google API, Anda tidak bisa pendaftarannya tanpa setting ulang beacon id. Ini berarti jika Anda menghapus proyek, beacon akan perlu ulang menggunakan app produsen Anda. Untuk Awareness API, namespace harus cocok proyek Google yang Anda gunakan untuk panggilan API Awareness Anda. Beacon di atas sudah terdaftar untuk tes pribadi proyek Google, maka namespace (reflected-disk-355) yang berbeda dari yang dari contoh proyek terkait dengan tutorial ini.

Pada gambar di atas, Anda dapat melihat salah satu item di bawah lampiran. Namespace lampiran ini adalah reflected-disk-355 (tutorial ini contoh proyek namespace adalah tutsplusawareness) dan tipe adalah nearby. Anda akan memerlukan informasi ini untuk Beacon Anda sendiri untuk mendeteksi lampiran dengan Awareness API.

Bila Anda memiliki Beacon dikonfigurasi, Anda dapat kembali ke kode. Anda akan perlu untuk membuat objek List BeaconState.TypeFilter sehingga aplikasi Anda dapat menyaring Beacon dan lampiran yang tidak berhubungan dengan aplikasi Anda.

Jika Anda memiliki alasan untuk percaya bahwa pengguna Anda sudah dekat beacon, Anda dapat meminta lampiran dari Beacon yang sesuai dengan filter persyaratan di atas. Ini akan memerlukan izin lokasi untuk pengguna Marshmallow dan kemudian.

Kode ini akan log informasi untuk lampiran terkait dengan beacon contoh di atas. Untuk contoh ini, saya telah mengkonfigurasi dua Beacon namespace yang sama dan jenis untuk menunjukkan bahwa beberapa Beacon dapat dideteksi sekaligus.

4. Menggunakan Fences API

Sementara Snapshot API dapat mengambil informasi tentang pengguna konteks pada waktu tertentu, Fences API listing untuk kondisi tertentu yang harus dipenuhi sebelum mengizinkan tindakan terjadi. Fences APPI dioptimalkan untuk baterai efisien dan penggunaan data, sehingga menjadi sopan pengguna Anda.

Ada lima jenis kondisi yang Anda dapat memeriksa ketika membuat fences:

Saat ini, kondisi cuaca dan tempat tidak memiliki dukungan untuk fences. Anda dapat membuat fences yang menggunakan salah satu fitur yang didukung; Namun, fitur yang sangat berguna api ini adalah bahwa operasi Logis dapat diterapkan untuk kondisi. Anda dapat mengambil beberapa fences dan menggunakan dan, atau, dan tidak operasi untuk menggabungkan kondisi yang sesuai dengan kebutuhan aplikasi Anda.

Membuat BroadcastReceiver

Sebelum Anda membuat fences Anda, Anda akan perlu untuk memiliki key value mewakili setiap fences yang app akan anda listen. Untuk menyelesaikan tutorial ini, Anda akan membangun fences yang mendeteksi ketika pengguna duduk di sebuah lokasi yang ditetapkan, seperti rumah mereka.

Setelah Anda memiliki key yang didefinisikan, Anda dapat broadcast Intent maksud yang berisi kunci itu.

Membuat Fences

Sekarang bahwa Anda memiliki receiver yang dibuat untuk listner event-evebt pengguna, saatnya untuk membuat fences Anda. AwarenessFence pertama yang Anda akan membuat akan listner ketika user sedang dalam keadaan STILL.

Pagar kedua Anda akan membuat akan menunggu pengguna untuk berada di berbagai lokasi tertentu. Sementara sampel ini memiliki nilai-nilai untuk lintang dan bujur sudah ditetapkan, Anda akan ingin untuk mengubah mereka untuk mencocokkan koordinat apapun sesuai lokasi Anda untuk pengujian.

Sekarang bahwa Anda memiliki dua fences, Anda dapat menggabungkan mereka untuk membuat ketiga AwarenessFence dengan menggunakan operasi AwarenessFence.and.

Akhirnya, Anda dapat membuat PendingIntent yang akan broadcast ke BroadcastReceiver Anda dan menambahkannya ke Awareness API yang menggunakan metode updateFences.

Sekarang, app akan log pesan ketika pengguna duduk dalam jangkauan lokasi yang ditentukan.

Kesimpulan

Dalam tutorial ini, Anda telah belajar tentang Awareness API dan bagaimana untuk mengumpulkan informasi tentang user environment. Anda juga telah belajar bagaimana untuk mendaftar listenr untuk perubahan dalam konteks pengguna dan bertindak ketika kondisi tertentu telah dipenuhi.

Dengan informasi ini, Anda harus mampu memperluas aplikasi Anda sendiri dan menyediakan pengguna dengan pengalaman lebih menakjubkan yang berdasarkan lokasi mereka saat ini, aktivitas, dan nilai-nilai yang berguna lainnya.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.