Dengan Wear OS by Google, smartwatch dapat berkomunikasi dengan jaringan secara langsung, tanpa akses ke ponsel Android atau iOS. Jangan gunakan Data Layer API untuk menghubungkan aplikasi Wear OS ke jaringan. Sebagai gantinya, ikuti panduan dan langkah-langkah dalam panduan ini.
Akses jaringan
Aplikasi Wear OS dapat membuat permintaan jaringan. Ketika smartwatch terhubung ke ponsel melalui koneksi Bluetooth, traffic jaringannya secara umum akan diberi proxy melalui ponsel.
Jika ponsel tidak tersedia, jaringan Wi-Fi dan seluler akan digunakan, bergantung pada hardware smartwatch. Platform Wear dapat menangani transisi antar-jaringan.
Anda dapat menggunakan protokol seperti HTTP, TCP, dan UDP. Namun, API
android.webkit, termasuk class CookieManager, tidak
tersedia. Anda dapat menggunakan cookie dengan membaca dan menulis header pada permintaan dan respons.
Gunakan WorkManager untuk permintaan asinkron, termasuk polling dengan interval rutin.
Jika Anda perlu terhubung ke jenis jaringan tertentu, lihat Membaca status jaringan.
Akses jaringan bandwidth tinggi
Platform Wear OS mengelola konektivitas jaringan untuk memberikan pengalaman pengguna terbaik secara keseluruhan. Platform ini memilih jaringan default yang aktif dengan menyeimbangkan dua kebutuhan: daya tahan baterai yang lama dan bandwidth jaringan.
Ketika ketahanan baterai diprioritaskan, jaringan aktif mungkin tidak memiliki cukup bandwidth untuk melakukan tugas jaringan seperti memindahkan file besar atau streaming media.
Bagian ini berisi panduan penggunaan class ConnectivityManager untuk
membantu memastikan aplikasi Anda memiliki bandwidth jaringan yang dibutuhkan. Untuk informasi umum tentang kontrol terperinci atas resource jaringan, lihat mengelola penggunaan jaringan.
Meminta konektivitas Wi-Fi
Untuk kasus penggunaan yang memerlukan akses jaringan bandwidth tinggi, seperti memindahkan file besar atau streaming media, mintalah konektivitas dengan transportasi bandwidth tinggi, seperti Wi-Fi. Hal ini ditunjukkan dalam contoh berikut:
val callback = object : ConnectivityManager.NetworkCallback() { override fun onAvailable(network: Network) { super.onAvailable(network) // The Wi-Fi network has been acquired. Bind it to use this network by default. connectivityManager.bindProcessToNetwork(network) } override fun onLost(network: Network) { super.onLost(network) // Called when a network disconnects or otherwise no longer satisfies this request // or callback. } } fun requestWifiNetwork() { connectivityManager.requestNetwork( NetworkRequest.Builder().addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build(), callback ) }
Jaringan mungkin tidak dapat diperoleh secara langsung karena radio Wi-Fi atau seluler smartwatch terkadang mati untuk menghemat baterai. Jika smartwatch tidak dapat terhubung ke
jaringan, metode onAvailable() dari instance NetworkCallback tidak akan
dipanggil.
Setelah onAvailable() dipanggil, perangkat akan mencoba tetap terhubung ke
jaringan Wi-Fi hingga NetworkCallback dirilis. Untuk menghemat masa pakai baterai, lepaskan callback seperti yang ditunjukkan dalam contoh berikut saat Anda tidak lagi memerlukan jaringan Wi-Fi.
connectivityManager.bindProcessToNetwork(null) connectivityManager.unregisterNetworkCallback(callback)
Meluncurkan aktivitas setelan Wi-Fi
Saat meminta jaringan Wi-Fi, sistem akan mencoba terhubung ke jaringan tersimpan
jika ada yang telah dikonfigurasi dan berada dalam jangkauan. Jika tidak ada jaringan Wi-Fi tersimpan yang tersedia, metode callback onAvailable dari instance NetworkCallback Anda tidak akan dipanggil.
Jika menggunakan Handler untuk membatalkan permintaan jaringan, Anda dapat mengarahkan pengguna untuk menambahkan jaringan Wi-Fi saat waktu tunggu habis. Arahkan pengguna langsung ke
aktivitas untuk menambahkan jaringan Wi-Fi menggunakan intent berikut:
val networkSettingsAction = "com.google.android.clockwork.settings.connectivity.wifi.ADD_NETWORK_SETTINGS" val intent = Intent(networkSettingsAction).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) } context.startActivity(intent)
Untuk meluncurkan aktivitas setelan, aplikasi Anda harus memiliki izin CHANGE_WIFI_STATE.
Pertimbangan antarmuka pengguna
Jika aplikasi Anda memerlukan koneksi ke jaringan Wi-Fi baru untuk operasi bandwidth tinggi, Anda harus mendapatkannya dan melepaskannya dengan lancar sesuai kebutuhan. Jika tidak ada jaringan Wi-Fi yang tersedia, jelaskan bahwa fitur ini memerlukan Wi-Fi dan berikan cara untuk meluncurkan Aktivitas setelan Wi-Fi. Jangan halangi pengguna untuk mengakses fitur aplikasi yang tidak memerlukan jaringan bandwidth tinggi.
Pertimbangan daya dan penggunaan data
Untuk membantu menghemat daya tahan baterai dan meminimalkan penggunaan data seluler, tunda tugas jaringan yang tidak penting, seperti pelaporan analisis atau pengumpulan log, hingga perangkat Wear OS terhubung kembali ke koneksi Bluetooth atau Wi-Fi, bukan koneksi LTE atau koneksi terukur.
Cloud messaging
Untuk mengirim notifikasi, gunakan Firebase Cloud Messaging (FCM) secara langsung.
Tidak ada API untuk akses jaringan atau FCM yang spesifik untuk Wear OS. Lihat dokumentasi yang ada tentang menghubungkan ke jaringan dan cloud messaging.
FCM berfungsi dengan baik dengan Istirahatkan dan merupakan cara yang direkomendasikan untuk mengirimkan notifikasi ke smartwatch.
Sediakan pesan dari FCM dengan mengumpulkan token pendaftaran untuk perangkat saat aplikasi Wear OS Anda berjalan. Kemudian, sertakan token sebagai bagian dari tujuan saat server Anda mengirim pesan ke endpoint REST FCM. FCM mengirim pesan ke perangkat yang diidentifikasi oleh token.
Pesan FCM memiliki format JavaScript Object Notation (JSON) dan dapat menyertakan salah satu atau kedua payload berikut:
- Payload notifikasi: saat payload notifikasi diterima oleh smartwatch, data akan ditampilkan secara langsung kepada pengguna dalam aliran notifikasi. Saat pengguna mengetuk notifikasi, aplikasi Anda akan diluncurkan.
- Payload data: saat payload memiliki serangkaian pasangan kunci atau nilai kustom. Payload dikirimkan sebagai data ke aplikasi Wear OS.
Untuk mengetahui informasi selengkapnya dan contoh payload, lihat jenis pesan.
Secara default, notifikasi akan dihubungkan dari aplikasi ponsel ke smartwatch. Jika Anda memiliki aplikasi Wear OS mandiri dan aplikasi ponsel terkait, notifikasi duplikat dapat terjadi. Misalnya, satu notifikasi dari FCM, yang diterima oleh ponsel dan smartwatch, dapat ditampilkan oleh kedua perangkat secara terpisah. Anda dapat mencegah hal ini dengan menggunakan bridging API.
Menggunakan layanan latar belakang
Untuk memastikan tugas latar belakang dijalankan dengan benar, tugas harus mempertimbangkan mode Istirahatkan dan Aplikasi Standby.
Jika layar mati atau memasuki mode standby untuk waktu yang cukup lama, mode Istirahatkan sebagian mungkin diaktifkan, dan tugas latar belakang mungkin tertunda selama jangka waktu tertentu.
Kemudian, jika perangkat standby lebih lama, perangkat akan memasuki mode Istirahatkan biasa.
Jadwalkan permintaan dengan WorkManager API agar aplikasi Anda dapat mendaftar untuk eksekusi kode yang aman dari mode Istirahatkan.
Menjadwalkan dengan batasan
Anda dapat menggunakan batasan untuk mengonfigurasi permintaan dengan cara yang dapat menghemat masa pakai baterai. Pilih satu atau beberapa batasan berikut untuk disertakan dalam permintaan Anda:
Menjadwalkan permintaan yang memerlukan jaringan.
Tentukan apakah
NetworkTypeadalahCONNECTEDatauUNMETERED.UNMETEREDdigunakan untuk transfer data berukuran besar, sementaraCONNECTEDuntuk transfer berukuran kecil.Menjadwalkan permintaan saat mengisi daya.
Menjadwalkan permintaan saat tidak ada aktivitas di perangkat. Batasan ini berguna untuk pekerjaan latar belakang atau sinkronisasi dengan prioritas lebih rendah, terutama saat perangkat sedang diisi dayanya.
Untuk mengetahui informasi selengkapnya, tinjau panduan Pengaruh batasan pada tugas berkala di WorkManager.