Sebaiknya aplikasi Wear OS berfungsi secara terpisah dari ponsel sehingga pengguna dapat menyelesaikan tugas pada smartwatch tanpa perlu mengakses ponsel Android atau iOS. Jika aplikasi smartwatch memerlukan interaksi ponsel, Anda harus menandai aplikasi Wear OS sebagai aplikasi non-mandiri dan mengambil langkah-langkah untuk memastikan pengguna memiliki aplikasi ponsel yang tersedia.
Merencanakan aplikasi Anda
Anda dapat menggunakan Android App Bundle secara otomatis untuk membuat Android Package Kit (APK) yang dioptimalkan untuk setiap konfigurasi perangkat pengguna pada listingan aplikasi yang sama. Tindakan ini memungkinkan pengguna untuk hanya mendownload kode dan resource yang dibutuhkan untuk menjalankan aplikasi Anda.
Untuk mengetahui informasi tentang cara menyiapkan aplikasi untuk didistribusikan melalui Google Play Store, lihat Memaketkan dan mendistribusikan Aplikasi Wear OS dan panduan memulai Android App Bundle.
Untuk aplikasi baru, level API target harus 30 atau lebih tinggi. Untuk mengetahui informasi selengkapnya, lihat
Memenuhi persyaratan API level
target Google Play. Tetapkan
targetSdkVersion
ke API level 30 (Wear OS 3) untuk membantu memastikan aplikasi Anda berfungsi dengan baik
di versi platform terbaru.
Untuk mengetahui informasi tentang permintaan jaringan dan akses jaringan bandwidth tinggi, lihat Akses dan sinkronisasi jaringan di Wear OS.
Menetapkan aplikasi sebagai aplikasi Wear OS
Anda harus menentukan tag
<uses-feature>
dalam file manifes Android aplikasi Anda.
Untuk menunjukkan bahwa ini adalah aplikasi smartwatch, tambahkan entri seperti berikut:
<manifest> ... <uses-feature android:name="android.hardware.type.watch" /> ... </manifest>
Mengidentifikasi aplikasi sebagai mandiri atau non-mandiri
Aplikasi smartwatch dianggap mandiri atau non-mandiri:
- Mandiri: aplikasi yang sepenuhnya independen dan tidak memerlukan aplikasi ponsel untuk inti baru. Meskipun "Buka di ponsel" dapat diterima, aplikasi harus menyediakan alternatif sarana bagi pengguna untuk menyelesaikan fungsi aplikasi—seperti tautan pendek atau kode QR—tanpa bergantung pada ponsel yang di-tethering.
- Nonmandiri: aplikasi dependen yang memerlukan aplikasi di ponsel atau perangkat lain untuk fitur inti. Opsi ini paling cocok untuk aplikasi yang tidak mudah menyediakan cara alternatif—seperti kode QR atau {i>shortlink<i}—untuk untuk menyelesaikan fungsi aplikasi inti, seperti autentikasi.
Catatan: Bahkan untuk aplikasi non-mandiri, pengguna dapat menginstal aplikasi Wear OS sebelum aplikasi seluler. Jadi, jika aplikasi Wear OS mendeteksi bahwa perangkat genggam terdekat tidak memiliki aplikasi pendamping yang diperlukan, minta pengguna untuk menginstal aplikasi pendamping.
Google memvalidasi akurasi status mandiri aplikasi selama aplikasi menyeluruh. Nilai ini memengaruhi visibilitas aplikasi dalam Play Store di perangkat yang tidak terhubung, seperti perangkat Wear OS yang tidak disambungkan ke perangkat genggam perangkat. Aplikasi nonmandiri—serta aplikasi yang salah developer ditetapkan sebagai "mandiri"—tidak tersedia untuk pengguna di properti perangkat.
Di aplikasi Wear OS, tetapkan nilai elemen
meta-data
com.google.android.wearable.standalone
dalam file manifes Android untuk mendeklarasikan apakah aplikasi Anda mandiri atau non-mandiri.
Jika aplikasi smartwatch Anda adalah aplikasi mandiri yang sepenuhnya independen, tunjukkan
hal ini ke Google Play Store dengan menetapkan
nilai com.google.android.wearable.standalone
ke true
:
<application> ... <meta-data android:name="com.google.android.wearable.standalone" android:value="true" /> ... </application>
Jika aplikasi smartwatch Anda non-mandiri dan bergantung pada aplikasi lain untuk fitur inti,
tetapkan nilai com.google.android.wearable.standalone
ke
false
. Ini menandakan bahwa aplikasi smartwatch memerlukan perangkat lain, tetapi tidak
memengaruhi promosi aplikasi Anda di Google Play Store.
Catatan:
Meskipun nilai com.google.android.wearable.standalone
adalah
false
, aplikasi
smartwatch dapat diinstal sebelum aplikasi ponsel diinstal.
Oleh karena itu, jika aplikasi smartwatch Anda
mendeteksi bahwa ponsel pendamping
tidak memiliki aplikasi ponsel yang diperlukan, seperti yang dijelaskan di halaman ini,
minta pengguna untuk menginstal aplikasi ponsel tersebut.
Kode dan penyimpanan data bersama
Kode dapat digunakan bersama antara aplikasi Wear OS dan aplikasi ponsel. Misalnya, kode umum untuk jaringan dapat berada dalam library bersama.
Atau, kode yang khusus untuk faktor bentuk tertentu dapat dimasukkan dalam modul tersendiri.
Anda dapat menggunakan API penyimpanan Android standar untuk menyimpan data secara lokal, seperti yang dilakukan di ponsel. Misalnya, Anda dapat menggunakan API SharedPreferences atau library persistensi Room.
Mendeteksi aplikasi di perangkat lain
Aplikasi smartwatch dan aplikasi ponsel terkait masing-masing dapat mendeteksi apakah aplikasi lainnya tersedia.
Aplikasi ponsel dan smartwatch dapat menggunakan
CapabilityClient
untuk memberitahukan kehadiran
perangkat tersebut ke perangkat yang disambungkan. Hal ini dapat dilakukan secara statis atau dinamis.
Saat aplikasi
berada di node dalam jaringan Wear OS pengguna, seperti di ponsel, smartwatch yang disambungkan, atau
di cloud, CapabilityClient
memungkinkan aplikasi
lain mendeteksinya. Untuk mengetahui informasi selengkapnya, lihat
Memberitahukan kapabilitas.
Jika salah satu aplikasi Anda tidak dapat mendeteksi aplikasi lainnya, Anda dapat meminta pengguna untuk membuka listingan Play Store di perangkat yang terpengaruh. Solusi ini ditujukan untuk aplikasi smartwatch yang memerlukan kehadiran aplikasi ponsel pendamping agar dapat berfungsi dengan baik.
Anda harus memeriksa apakah Play Store tersedia di perangkat, karena tidak semua ponsel—seperti iPhone—mendukung Play Store.
Bagian berikut menjelaskan praktik terbaik untuk dua skenario:
- Aplikasi smartwatch mandiri memerlukan aplikasi ponsel.
- Aplikasi ponsel memerlukan aplikasi smartwatch mandiri.
Anda juga dapat meninjau
Contoh helper datalayer, yang menunjukkan cara menggunakan
Library bantuan lapisan data, bagian dari
Horologist. {i>helper<i} ini memungkinkan Anda
memantau koneksi antara perangkat genggam
dan perangkat Wear OS.
Untuk informasi lebih lanjut
tentang class yang dijelaskan di bagian berikut, lihat
Referensi API Wear OS.
Referensi tersebut juga mencakup informasi tentang
Class PhoneTypeHelper
, yang berisi
getPhoneDeviceType()
yang memungkinkan Anda
Aplikasi Wear OS memeriksa apakah ponsel pendamping berupa perangkat Android atau iOS.
Menentukan nama kapabilitas untuk mendeteksi aplikasi
Untuk aplikasi terkait setiap jenis perangkat, smartwatch atau ponsel, tentukan
string unik untuk nama kapabilitas dalam
file res/values/wear.xml
.
Misalnya, dalam modul seluler, file wear.xml
dapat berisi:
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_phone_app</item> </string-array> </resources>
Dalam modul Wear OS, file wear.xml
akan berisi
nilai yang berbeda untuk nama kapabilitas,
seperti berikut:
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_wear_app</item> </string-array> </resources>
Untuk mengetahui informasi selengkapnya, lihat Memberitahukan kapabilitas.
Pendeteksian aplikasi dan membuka URL dari smartwatch
Aplikasi smartwatch dapat mendeteksi apakah ponsel pendamping pengguna memiliki aplikasi ponsel. Ikuti langkah-langkah berikut:
-
Gunakan
CapabilityClient
untuk memeriksa apakah aplikasi ponsel diinstal pada ponsel yang disambungkan. Untuk informasi selengkapnya, lihat Contoh helper Datalayer di GitHub. -
Jika aplikasi ponsel tidak diinstal di ponsel, gunakan metode
PhoneDeviceType.getPhoneDeviceType()
untuk memeriksa jenis ponsel. Lihat bagian berikut untuk mengetahui detailnya. -
Jika
PhoneDeviceType.DEVICE_TYPE_ANDROID
ditampilkan, berarti ponsel adalah ponsel Android. PanggilRemoteActivityHelper.startRemoteActivity()
di perangkat Wear OS untuk membuka Play Store di ponsel. Gunakan URI market untuk aplikasi ponsel, yang mungkin berbeda dengan URI aplikasi Wear. Misalnya, gunakan URI market seperti:market://details?id=com.example.android.wearable.wear.finddevices
. -
Jika
PhoneDeviceType.DEVICE_TYPE_IOS
ditampilkan, berarti ponsel adalah ponsel iOS tanpa ada Play Store. Buka App Store di iPhone dengan memanggilRemoteActivityHelper.startRemoteActivity()
di perangkat Wear OS. Anda dapat menentukan URL iTunes aplikasi, sepertihttps://itunes.apple.com/us/app/yourappname
.Dari Wear OS, Anda tidak dapat menentukan secara terprogram apakah aplikasi ponsel diinstal di perangkat iOS. Sebagai praktik terbaik, berikan mekanisme kepada pengguna untuk memicu pembukaan App Store secara manual.
Catatan: Gunakan RemoteActivityHelper
API yang sebelumnya dijelaskan untuk
menentukan bahwa semua URL dibuka di ponsel dari smartwatch,
dan aplikasi ponsel tidak diperlukan.
Detail untuk mendeteksi jenis ponsel yang tersambung
Berikut adalah cuplikan yang menggunakan metode getPhoneDeviceType()
untuk
memeriksa jenis ponsel yang tersambung ke smartwatch:
Kotlin
var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)
Java
int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);
Nilai yang ditampilkan oleh
metode getPhoneDeviceType()
adalah salah satu dari berikut:
Nilai yang ditampilkan | Deskripsi |
---|---|
DEVICE_TYPE_ANDROID
|
Ponsel pendamping adalah perangkat Android. |
DEVICE_TYPE_IOS
|
Ponsel pendamping adalah perangkat iOS. |
DEVICE_TYPE_UNKNOWN
|
Ponsel pendamping adalah perangkat tak diketahui. |
DEVICE_TYPE_ERROR
|
Terjadi error saat menentukan jenis ponsel yang tersambung; pemeriksaan harus dilakukan kembali nanti. |
Pendeteksian aplikasi mulai dari ponsel Android
Ponsel Android dapat mendeteksi apakah perangkat Wear OS pengguna memiliki aplikasi smartwatch. Ikuti langkah-langkah berikut:
-
Dengan
NodeClient
, temukan semua smartwatch yang tersambung ke ponsel pengguna. Untuk informasi selengkapnya, lihat Contoh helper Datalayer di GitHub. -
Dengan
CapabilityClient
, periksa smartwatch pengguna mana yang sudah menginstal aplikasi. -
Jika aplikasi tidak diinstal di semua smartwatch pengguna, izinkan pengguna
membuka Play Store di perangkat Wear OS yang tersisa dari ponsel menggunakan
metode
RemoteActivityHelper.startRemoteActivity()
. Gunakan URI market untuk aplikasi Wear OS, yang mungkin berbeda dengan URI aplikasi ponsel. Misalnya, gunakan URI market seperti:market://details?id=com.example.android.wearable.wear.finddevices
.
Data lokasi untuk smartwatch yang tersambung ke iPhone
Untuk smartwatch yang tersambung ke iPhone, gunakan Penyedia Lokasi Gabungan (FLP) untuk mendapatkan data lokasi di smartwatch. Untuk mengetahui informasi selengkapnya, lihat Mendeteksi lokasi di Wear OS.
Jika ponsel pendamping tersedia, FLP akan menggunakannya untuk mendapatkan data lokasi.
Mendapatkan data yang diperlukan saja
Secara umum, saat mendapatkan data dari internet, ambil data yang diperlukan saja. Jika tidak, Anda dapat menyebabkan latensi, penggunaan memori, dan penggunaan baterai yang tidak perlu.
Bila smartwatch terhubung melalui koneksi Bluetooth LE, aplikasi mungkin hanya dapat mengakses bandwidth sebesar 4 kilobyte per detik, tergantung pada smartwatch. Oleh karena itu, langkah-langkah berikut direkomendasikan:
- Audit permintaan dan respons jaringan Anda untuk data tambahan yang hanya diperlukan untuk aplikasi ponsel.
- Perkecil gambar besar sebelum mengirimkannya melalui jaringan ke smartwatch.
Untuk kasus yang memerlukan jaringan bandwidth tinggi, lihat Akses jaringan bandwidth tinggi.
Contoh kode lainnya
Tujuan Contoh helper Datalayer menunjukkan lebih lanjut penggunaan API yang dibahas di halaman ini.