Dengan Wear OS by Google, smartwatch memiliki beberapa cara untuk mengirim dan menyinkronkan data. Sebaiknya kirim dan sinkronkan data langsung dari jaringan agar aplikasi dianggap sebagai aplikasi mandiri.
Mengirim dan menyinkronkan data langsung dari jaringan
Build aplikasi Wear OS untuk berkomunikasi langsung dengan jaringan. Anda dapat menggunakan API yang sama seperti yang digunakan untuk pengembangan seluler, tetapi Anda perlu memperhatikan beberapa perbedaan khusus pada Wear OS.
Mengirim dan menyinkronkan data dengan Wearable Data Layer API
Data Layer API Wearable, yang merupakan bagian dari layanan Google Play, menyediakan saluran komunikasi opsional untuk aplikasi.
API ini hanya tersedia di smartwatch Wear OS dan perangkat Android yang tersambung. Untuk smartwatch Wear OS yang disambungkan dengan ponsel iOS, aplikasi dapat mengkueri API berbasis cloud lainnya jika konektivitas internet tersedia.
Wearable Data Layer API memiliki dependensi berikut:
- Versi terbaru layanan Google Play.
- Perangkat Wear OS atau emulator Wear OS.
Sertakan dependensi berikut dalam file build.gradle
di modul Wear Anda:
dependencies { ... implementation 'com.google.android.gms:play-services-wearable:18.1.0' }
Kami merekomendasikan agar aplikasi Wearable mengirim dan menyinkronkan data langsung dari jaringan atau ponsel yang terhubung. Namun, jika ingin berkomunikasi langsung antar-perangkat dalam format jenis RPC atau tidak dapat terhubung langsung ke jaringan untuk data, Anda dapat menggunakan Wearable Data Layer API dengan cara berikut.
- Iklan dan kueri kemampuan jarak jauh
-
CapabilityClient
memberikan informasi tentang node mana di jaringan Wear OS yang mendukung kemampuan aplikasi kustom. Node mewakili perangkat seluler dan wearable yang terhubung ke jaringan. Kemampuan adalah fitur yang ditentukan aplikasi pada waktu build, atau dikonfigurasi secara dinamis saat runtime. - Misalnya, aplikasi Android seluler dapat mengiklankan bahwa aplikasi tersebut mendukung remote control pemutaran
video. Saat versi wearable aplikasi tersebut diinstal, aplikasi dapat menggunakan
CapabilityClient
untuk memeriksa apakah versi seluler aplikasi terinstal dan mendukung fitur tersebut. Jika demikian, aplikasi wearable dapat menampilkan tombol putar/jeda untuk mengontrol video di perangkat lain menggunakan pesan. - Hal ini juga dapat berfungsi berlawanan arah, dengan kemampuan listingan aplikasi wearable yang didukung.
- Mengirim pesan
-
MessageClient
dapat mengirim pesan dan cocok untuk remote procedure call (RPC), seperti mengontrol pemutar media perangkat genggam dari wearable atau memulai intent pada wearable dari perangkat genggam. Pesan juga sangat baik untuk permintaan satu arah atau model komunikasi permintaan atau respons. - Jika perangkat genggam dan wearable terhubung, sistem akan mengantrekan pesan untuk dikirimkan dan menampilkan kode hasil yang berhasil. Jika perangkat tidak terhubung, error akan ditampilkan. Kode hasil yang berhasil tidak menunjukkan bahwa pesan berhasil dikirim, karena perangkat dapat terputus setelah menerima kode hasil.
- Mentransfer data
-
ChannelClient
dapat mentransfer data dari perangkat genggam ke perangkat wearable. DenganChannelClient
, Anda dapat melakukan hal berikut:- Mentransfer file data antara dua perangkat yang terhubung atau lebih saat internet tidak
tersedia tanpa sinkronisasi otomatis yang disediakan saat menggunakan
objek
Asset
yang terpasang ke objekDataItem
.ChannelClient
menghemat ruang disk melaluiDataClient
yang akan membuat salinan aset di perangkat lokal sebelum disinkronkan dengan perangkat yang terhubung. - Andal dalam mengirim file yang terlalu besar untuk dikirim menggunakan
MessageClient
. - Mentransfer data streaming, seperti data suara dari mikrofon.
- Mentransfer file data antara dua perangkat yang terhubung atau lebih saat internet tidak
tersedia tanpa sinkronisasi otomatis yang disediakan saat menggunakan
objek
- Menyinkronkan data
DataClient
mengekspos API agar komponen dapat membaca atau menulis keDataItem
atauAsset
.-
DataItem
disinkronkan di semua perangkat dalam jaringan Wear OS. Anda dapat menetapkan item data tanpa terhubung ke node mana pun. Item data tersebut disinkronkan saat node terhubung ke internet. - Item data bersifat pribadi untuk aplikasi yang membuatnya, dan hanya dapat diakses oleh
aplikasi tersebut di node lain. Item data tersebut biasanya berukuran kecil. Gunakan
Assets
untuk transfer objek data yang lebih besar dan lebih persisten, seperti gambar. - Wear OS mendukung beberapa perangkat wearable yang terhubung ke perangkat genggam. Contohnya, ketika pengguna menyimpan catatan di perangkat genggam, catatan tersebut akan muncul secara otomatis di semua perangkat Wear OS pengguna. Untuk membantu menyinkronkan data antarperangkat, server Google menghosting node cloud di jaringan perangkat. Sistem menyinkronkan data ke perangkat yang terhubung langsung, node cloud, dan perangkat wearable yang terhubung ke node cloud melalui Wi-Fi.
Peringatan: Item akan ditransfer ke semua perangkat Wear OS yang tersedia, bahkan perangkat yang belum menginstal aplikasi Anda. Jika menyinkronkan data dalam jumlah besar, sebaiknya periksa apakah aplikasi "penerima" sudah diinstal dan online untuk menghindari pemborosan resource pada perangkat genggam dan perangkat Wear OS.
- Memproses peristiwa lapisan data penting (untuk layanan)
- Memperluas
WearableListenerService
memungkinkan Anda memproses peristiwa lapisan data penting dalam layanan. Sistem akan mengelola siklus prosesWearableListenerService
, melakukan binding ke layanan saat perlu mengirimkan item data atau pesan, dan membatalkan layanan ketika tidak diperlukan. - Memproses peristiwa lapisan data penting (untuk aktivitas latar depan)
-
Mengimplementasikan
OnDataChangedListener
di aktivitas memungkinkan Anda memproses peristiwa lapisan data penting saat aktivitas berada di latar depan. Dengan menggunakan ini, bukanWearableListenerService
, akan memungkinkan Anda memproses perubahan, hanya saat pengguna aktif menggunakan aplikasi Anda.
Peringatan: Karena API ini didesain untuk komunikasi antara perangkat genggam dan wearable, API ini menjadi satu-satunya yang bisa Anda gunakan untuk memulai komunikasi antara perangkat tersebut. Contohnya, jangan mencoba membuka soket level rendah untuk membuat saluran komunikasi.
Perbandingan klien
Tabel berikut menunjukkan berbagai persyaratan dan kasus penggunaan untuk setiap klien.
Klien Data | Klien Pesan | Klien Saluran | |
Ukuran data lebih dari 100 kb | Ya | Tidak | Ya |
Dapat mengirim pesan ke node yang saat ini tidak terhubung | Ya | Tidak | Tidak |
Pola komunikasi | Resource berbasis jaringan bersama | Meneruskan pesan 1:1 (dengan respons) | Streaming 1:1 |
Konektivitas
Lapisan Data memiliki dua opsi untuk komunikasi:
- Langsung bertukar data saat ada koneksi Bluetooth antara smartwatch dan perangkat lain.
- Bertukar data melalui jaringan yang tersedia seperti LTE atau Wi-Fi.
Semua klien Lapisan Data dapat bertukar data menggunakan Sinkronisasi Google Cloud atau Bluetooth, bergantung pada koneksi yang tersedia untuk perangkat. Layanan Sinkronisasi Cloud adalah mekanisme Google untuk komunikasi dan pertukaran data antara perangkat wearable dan ponsel saat Bluetooth tidak tersedia.
Keamanan
Opsi komunikasi Bluetooth dan Layanan Sinkronisasi Cloud, dienkripsi end-to-end.
Layanan Google Play menerapkan pembatasan berikut untuk memastikan bahwa komunikasi antara ponsel dan smartwatch aman dan dilakukan dari aplikasi ke aplikasi.
- Nama paket harus cocok di seluruh perangkat.
- Tanda tangan paket harus cocok di seluruh perangkat.
Bluetooth
Jika perangkat terhubung menggunakan Bluetooth, Lapisan Data akan menggunakan koneksi ini. Saat menggunakan Bluetooth, ada satu saluran terenkripsi di antara perangkat yang menggunakan enkripsi Bluetooth standar, yang dikelola oleh Layanan Google Play.
Cloud
Asumsikan bahwa data yang dikirim menggunakan Lapisan Data suatu saat mungkin menggunakan server
milik Google. Misalnya, DataClient
, MessageClient
, atau
ChannelClient
otomatis dirutekan melalui Google Cloud saat Bluetooth tidak tersedia.
Semua data yang ditransfer melalui Google Cloud dienkripsi end-to-end.
Pembuatan dan penyimpanan kunci
Kunci End-to-End untuk komunikasi berbasis cloud dihasilkan oleh ponsel, dan dipertukarkan langsung dengan smartwatch saat kedua perangkat terhubung menggunakan Bluetooth. Hal ini terjadi selama penyiapan perangkat. Server milik Google tidak menerima kunci ini.
Komunikasi melalui server milik Google tidak dapat dilakukan hingga pembuatan kunci end-to-end selesai. Kunci disimpan dalam penyimpanan file pribadi layanan Google Play di semua perangkat yang disambungkan.
Pencadangan perangkat
Kunci tidak dicadangkan dan tidak dikirim ke luar perangkat. Jika kunci baru diperlukan, seperti untuk ponsel baru, sistem akan membuat kunci baru dan membagikannya ke perangkat yang masih dimiliki pengguna.