Dengan Wear OS by Google, smartwatch dapat langsung berkomunikasi dengan jaringan, 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 kami.
Akses jaringan
Aplikasi Wear OS dapat membuat permintaan jaringan. Jika smartwatch dilengkapi dengan Bluetooth ke ponsel, lalu lintas jaringan jam umumnya di-proxy-kan melalui ponsel.
Jika ponsel tidak tersedia, jaringan Wi-Fi dan seluler akan digunakan, bergantung pada perangkat keras jam. Platform Wear dapat menangani transisi antar-jaringan.
Anda dapat menggunakan protokol seperti HTTP, TCP, dan UDP. Namun,
android.webkit
API, termasuk class CookieManager
, tidak termasuk
yang tersedia. Anda dapat menggunakan cookie dengan membaca dan menulis header pada permintaan dan
yang dihasilkan.
Gunakan WorkManager
untuk permintaan asinkron, termasuk polling secara rutin
dengan interval tertentu.
Jika Anda perlu terhubung ke jenis jaringan tertentu, lihat Membaca jaringan status.
Akses jaringan bandwidth tinggi
Platform Wear OS mengelola konektivitas jaringan dengan tujuan untuk menyediakan pengalaman pengguna terbaik secara keseluruhan. Platform memilih jaringan aktif {i>default<i} dengan menyeimbangkan dua kebutuhan: masa pakai baterai yang panjang dan {i>bandwidth<i} jaringan.
Ketika daya tahan baterai diprioritaskan, jaringan yang aktif mungkin tidak cukup {i>bandwidth<i} untuk tugas jaringan seperti memindahkan file besar atau streaming lainnya.
Bagian ini memberikan panduan tentang penggunaan class ConnectivityManager
untuk
membantu memastikan bahwa aplikasi Anda memiliki bandwidth jaringan yang dibutuhkan. Untuk umum
informasi 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 media streaming, meminta konektivitas dengan bandwidth tinggi transportasi umum, seperti Wi-Fi. Hal ini ditunjukkan dalam contoh berikut:
Kotlin
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. } } connectivityManager.requestNetwork( NetworkRequest.Builder().addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build(), callback )
Java
ConnectivityManager.NetworkCallback callback = new ConnectivityManager.NetworkCallback() { public void onAvailable(Network network) { super.onAvailable(network); // The Wi-Fi network has been acquired. Bind it to use this network by default. connectivityManager.bindProcessToNetwork(network); } public void onLost(Network network) { super.onLost(network); // Called when a network disconnects or otherwise no longer satisfies this request or callback. } }; connectivityManager.requestNetwork( new NetworkRequest.Builder().addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build(), callback );
Memperoleh jaringan mungkin tidak
secara instan, karena jam Wi-Fi atau
radio seluler mungkin dimatikan untuk menghemat baterai. Jika jam tidak dapat tersambung ke
jaringan, metode onAvailable()
dari instance NetworkCallback
Anda tidak
dipanggil.
Setelah onAvailable()
dipanggil, perangkat akan mencoba untuk tetap terhubung ke
Jaringan Wi-Fi hingga NetworkCallback
dirilis. Untuk menghemat masa pakai baterai,
lepaskan callback seperti yang ditunjukkan dalam contoh berikut ketika Anda tidak lagi memerlukan
Jaringan Wi-Fi.
Kotlin
connectivityManager.bindProcessToNetwork(null) connectivityManager.unregisterNetworkCallback(callback)
Java
connectivityManager.bindProcessToNetwork(null); connectivityManager.unregisterNetworkCallback(callback);
Meluncurkan aktivitas setelan Wi-Fi
Saat meminta jaringan Wi-Fi, sistem akan mencoba terhubung ke jaringan tersimpan
jika salah satunya dikonfigurasi
dan berada dalam jangkauan. Jika tidak ada jaringan Wi-Fi tersimpan yang tersedia,
Metode callback onAvailable
dari instance NetworkCallback
Anda tidak dipanggil.
Jika menggunakan Handler
untuk menghentikan waktu permintaan jaringan, Anda dapat mengarahkan
menambahkan jaringan Wi-Fi ketika waktu tunggu habis. Arahkan pengguna langsung ke
aktivitas untuk menambahkan jaringan Wi-Fi menggunakan intent berikut:
Kotlin
context.startActivity(Intent("com.google.android.clockwork.settings.connectivity.wifi.ADD_NETWORK_SETTINGS"))
Java
context.startActivity(new Intent("com.google.android.clockwork.settings.connectivity.wifi.ADD_NETWORK_SETTINGS"));
Untuk meluncurkan aktivitas setelan, aplikasi Anda harus memiliki CHANGE_WIFI_STATE
izin akses.
Pertimbangan antarmuka pengguna
Jika aplikasi Anda memerlukan koneksi ke jaringan Wi-Fi baru untuk bandwidth tinggi pastikan bahwa alasan untuk menghubungkan jelas bagi pengguna sebelum Anda meluncurkan pengaturan Wi-Fi. Hanya minta pengguna menambahkan Wi-Fi baru jaringan terutama ketika jaringan {i>bandwidth<i} tinggi diperlukan. Jangan blokir pengguna dari yang mengakses fitur aplikasi yang tidak memerlukan jaringan bandwidth tinggi.
Gambar 1 menunjukkan aplikasi musik. Aplikasi ini memungkinkan pengguna menelusuri musik pada jaringan dengan bandwidth lebih rendah dan hanya mengharuskan pengguna menambahkan jaringan mereka ingin mengunduh atau mengalirkan musik.
Gambar 1. Alur aplikasi musik untuk mendownload musik.
Pertimbangan daya dan penggunaan data
Untuk membantu menghemat masa pakai baterai dan meminimalkan penggunaan data seluler, tunda semua perubahan 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 berkuota.
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 dokumen yang sudah ada dokumentasi tentang terhubung ke jaringan dan cloud messaging.
FCM berfungsi baik dengan Istirahatkan dan merupakan cara yang direkomendasikan untuk mengirim notifikasi untuk jam tangan.
Menyediakan pesan dari FCM dengan mengumpulkan token pendaftaran untuk perangkat saat aplikasi Wear OS berjalan. Kemudian, sertakan token sebagai bagian dari tujuan saat server 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 mengamati, data ditampilkan kepada pengguna secara langsung dalam aliran notifikasi. Kapan pengguna mengetuk notifikasi, aplikasi Anda diluncurkan.
- Payload data: jika payload memiliki sekumpulan key-value pair atau pasangan nilai kustom. Payload dikirimkan sebagai data ke aplikasi Wear OS.
Untuk mengetahui informasi selengkapnya dan contoh payload, lihat Tentang pesan FCM.
Secara default, notifikasi akan dihubungkan dari aplikasi ponsel ke smartwatch. 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 API penghubung.
Menggunakan layanan latar belakang
Untuk membantu memastikan bahwa tugas latar belakang dieksekusi dengan benar, mereka harus untuk mode Istirahatkan dan Aplikasi Standby.
Ketika layar mati atau memasuki mode standby untuk waktu yang cukup lama,
dalam mode Istirahatkan dapat terjadi, dan tugas latar belakang dapat ditunda selama jangka waktu tertentu.
Kemudian, ketika perangkat tidak bergerak untuk waktu yang lama, mode Istirahatkan biasa akan terjadi.
Menjadwalkan permintaan dengan WorkManager
API, yang memungkinkan aplikasi Anda mendaftar
untuk eksekusi kode yang aman dari Istirahatkan.
Menjadwalkan dengan batasan
Anda dapat menggunakan batasan untuk mengonfigurasi permintaan sedemikian rupa sehingga menghemat baterai kehidupan Anda. Pilih satu atau beberapa batasan berikut untuk disertakan dalam permintaan:
Menjadwalkan permintaan yang memerlukan jaringan.
Tentukan apakah
NetworkType
adalahCONNECTED
atauUNMETERED
.UNMETERED
untuk transfer data berukuran besar, sedangkanCONNECTED
untuk transfer data kecil transfer data.Menjadwalkan permintaan saat mengisi daya.
Menjadwalkan permintaan saat tidak ada aktivitas di perangkat. Hal ini berguna untuk sinkronisasi dengan prioritas lebih rendah, terutama ketika perangkat sedang diisi dayanya.
Untuk informasi selengkapnya, tinjau Efek batasan pada WorkManager panduan pekerjaan berkala.