Mengirim dan menyinkronkan data di Wear OS

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:

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. Dengan ChannelClient, 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 objek DataItem. ChannelClient menghemat ruang disk melalui DataClient 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.
Menyinkronkan data
DataClient mengekspos API agar komponen dapat membaca atau menulis ke DataItem atau Asset.
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 proses WearableListenerService, 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, bukan WearableListenerService, 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:

  1. Langsung bertukar data saat ada koneksi Bluetooth antara smartwatch dan perangkat lain.
  2. Bertukar data melalui jaringan yang tersedia seperti LTE atau Wi-Fi.
Gambar 1. Contoh jaringan node dengan perangkat genggam dan wearable.

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.