Aplikasi Wear OS dapat berfungsi secara independen dari aplikasi ponsel. Pengguna dapat menyelesaikan tugas pada smartwatch, tanpa perlu mengakses ponsel Android atau iOS.
Lihat referensi terkait berikut:
Merencanakan aplikasi
Anda dapat menggunakan fitur multi-APK Google Play untuk memublikasikan lebih dari satu APK dengan listingan aplikasi yang sama. APK smartwatch harus didistribusikan menggunakan fitur tersebut; jangan sematkan APK smartwatch dalam APK ponsel. Untuk informasi tentang cara menyiapkan aplikasi untuk didistribusikan melalui Google Play Store, lihat Memaketkan dan Mendistribusikan Aplikasi Wear dan Cara Kerja Multi-APK.
Catatan: Agar memenuhi syarat untuk dipromosikan di Google Play Store pada perangkat Wear (yaitu di Play Store versi smartwatch), aplikasi harus berfungsi secara independen dari aplikasi ponsel. Dukungan iOS dan Android diperlukan.
Secara umum, API level minimum dan target untuk aplikasi mandiri, juga untuk Wear 2.0, adalah 25. Level SDK minimum dapat menjadi 23 hanya jika Anda menggunakan APK yang sama untuk Wear 1.0 dan 2.0 (yang berarti memiliki APK Wear 1.0 sematan).
Catatan: Karena adanya masalah latensi yang memengaruhi ketersediaan aplikasi pada smartwatch Wear 1.x, jika Anda membuat APK Wear 2.0 mandiri dan akan terus menggunakan APK Wear 1.0, lakukan kedua tindakan berikut:
- Sediakan APK Wear versi mandiri, dan
- Terus sematkan suatu versi APK Wear dalam APK ponsel
Perhatian: Jika Anda memublikasikan update untuk APK ponsel produksi saat ini yang telah menghapus APK Wear sematan, maka pengguna produksi yang mengupdate APK ponsel sebelum menginstal APK Wear mandiri akan kehilangan aplikasi Wear yang ada beserta datanya. Jika Anda memublikasikan update untuk APK ponsel produksi yang ada, terus sematkan APK smartwatch ke dalam APK ponsel tersebut.
Izin runtime diperlukan untuk aplikasi mandiri.
Untuk informasi tentang permintaan jaringan dan akses jaringan bandwidth tinggi, lihat Sinkronisasi dan Akses Jaringan.
Mengidentifikasi aplikasi sebagai mandiri
Aplikasi Wear harus memiliki elemen
meta-data
dalam file Manifes Android,
sebagai turunan elemen <application>
.
Nama elemen meta-data
adalah com.google.android.wearable.standalone
dan
nilainya harus true
atau false
. Elemen ini
menunjukkan apakah aplikasi smartwatch merupakan aplikasi mandiri, yang berarti
dapat beroperasi tanpa memerlukan aplikasi Android versi ponsel. Jika setelan untuk elemen
adalah true
, aplikasi dapat tersedia di
Play Store pada smartwatch yang disambungkan ke iPhone, asalkan
APK aktif di semua saluran (misalnya, di
saluran beta)
memiliki elemen yang ditetapkan ke true
.
Jika tidak semua APK (alfa, beta, dan produksi)
yang saat ini ditayangkan kepada pengguna
memiliki setelan di atas, aplikasi tidak akan tersedia saat
pengguna melakukan penelusuran di smartwatch yang tersambung ke iPhone.
Aplikasi smartwatch dapat dianggap sebagai salah satu dari berikut ini:
- Sepenuhnya independen dari aplikasi ponsel
- Semi-independen (aplikasi ponsel tidak diperlukan dan hanya menyediakan fitur opsional)
- Bergantung pada aplikasi ponsel
Jika sepenuhnya independen atau semi-independen,
aplikasi smartwatch dianggap termasuk dalam kategori mandiri. Anda harus menunjukkan kategorisasi
ini ke Google Play Store dengan menetapkan
nilai elemen meta-data
ini ke true
:
<application> ... <meta-data android:name="com.google.android.wearable.standalone" android:value="true" /> ... </application>
Karena aplikasi mandiri (yaitu aplikasi independen atau semi-independen) dapat diinstal oleh pengguna iPhone atau ponsel Android yang tidak dilengkapi Play Store, aplikasi smartwatch akan dapat digunakan tanpa aplikasi ponsel.
Jika aplikasi smartwatch bergantung pada aplikasi ponsel, tetapkan nilai elemen
meta-data
di atas ke false
. Menetapkan elemen ini
ke false
menandakan bahwa aplikasi smartwatch seharusnya
hanya diinstal pada smartwatch yang tersambung ke ponsel yang memiliki Play Store.
Catatan:
Meskipun nilainya false
, aplikasi
smartwatch dapat diinstal sebelum aplikasi ponsel diinstal.
Oleh karena itu, jika aplikasi smartwatch
mendeteksi bahwa ponsel pendamping
tidak memiliki aplikasi ponsel yang diperlukan, aplikasi smartwatch akan
meminta pengguna untuk menginstal aplikasi ponsel tersebut.
Menetapkan aplikasi sebagai aplikasi Wear
Anda harus memastikan tag
<uses-feature>
ditetapkan dalam file Manifes Android di
aplikasi. Tag harus menunjukkan bahwa aplikasinya adalah watch
, misalnya,
android:name="android.hardware.type.watch"
seperti berikut:
<manifest> ... <uses-feature android:name="android.hardware.type.watch" /> ... </manifest>
Kode dan penyimpanan data bersama
Kode dapat digunakan bersama antara aplikasi Wear dan aplikasi ponsel. Kode khusus faktor bentuk juga dapat berada dalam modul terpisah.
Misalnya, kode umum untuk jaringan dapat berada dalam library bersama.
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 dapat mendeteksi apakah aplikasi ponsel terkait tersedia, begitu pula sebaliknya.
Aplikasi smartwatch atau aplikasi ponsel dapat menggunakan
CapabilityClient
untuk memberitahukan kehadiran aplikasi
ke perangkat yang disambungkan. Hal ini dapat dilakukan secara statis dan dinamis. Saat aplikasi
berada di node dalam jaringan Wear pengguna (misalnya, di ponsel, smartwatch yang disambungkan, atau
di cloud), CapabilityClient
memungkinkan aplikasi
lain mendeteksi apakah aplikasi tersebut diinstal. Untuk informasi selengkapnya, lihat
Memberitahukan kapabilitas.
Jika salah satu aplikasi tidak dapat mendeteksi aplikasi lainnya, Anda dapat memungkinkan pengguna membuka listingan Play Store di perangkat jarak jauh. Solusi ini ditujukan untuk aplikasi smartwatch yang memerlukan kehadiran aplikasi ponsel pendamping agar dapat berfungsi dengan baik. Prasyaratnya adalah memeriksa kehadiran Play Store di perangkat jarak jauh.
Perlu diketahui bahwa tidak semua ponsel mendukung Play Store (misalnya iPhone, dsb.).
Bagian ini menjelaskan praktik terbaik untuk skenario berikut:
- Aplikasi smartwatch mandiri memerlukan aplikasi ponsel
- Aplikasi ponsel memerlukan aplikasi smartwatch mandiri
Tinjau
contoh
yang menunjukkan fungsi ini. Untuk informasi selengkapnya
tentang class yang dijelaskan di bawah, lihat
Referensi API Wear.
Dalam referensi tersebut juga terdapat informasi tentang
class
PhoneDeviceType
, yang berisi
metode
getPhoneDeviceType()
sehingga
aplikasi Wear dapat memeriksa apakah ponsel pendamping adalah 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, 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 informasi selengkapnya, lihat Memberitahukan kapabilitas.
Pendeteksian aplikasi dan membuka URL dari smartwatch
Aplikasi smartwatch dapat mendeteksi apakah ponsel pendamping pengguna memiliki aplikasi ponsel:
-
Gunakan
CapabilityClient
untuk memeriksa apakah aplikasi ponsel diinstal pada ponsel yang disambungkan. Untuk informasi selengkapnya, lihat contoh. -
Jika aplikasi ponsel tidak diinstal di ponsel, gunakan metode
PhoneDeviceType.getPhoneDeviceType()
untuk memeriksa jenis ponsel. -
Jika
PhoneDeviceType.DEVICE_TYPE_ANDROID
ditampilkan, berarti ponsel adalah ponsel Android. PanggilRemoteIntent.startRemoteActivity()
di perangkat Wear untuk membuka app store di ponsel. Gunakan URI market untuk aplikasi ponsel (yang mungkin berbeda dari URI ponsel). 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 (Play Store tidak tersedia). Buka App Store di iPhone dengan memanggilRemoteIntent.startRemoteActivity()
di perangkat Wear. Anda dapat menentukan URL iTunes aplikasi, misalnya,https://itunes.apple.com/us/app/yourappname
. Dari Wear OS di iPhone, Anda tidak dapat menentukan secara terprogram apakah aplikasi ponsel sudah diinstal. Sebagai praktik terbaik, sediakan mekanisme bagi pengguna (misalnya tombol) untuk memicu pembukaan App Store secara manual.
Perlu diketahui bahwa dengan menggunakan RemoteIntent
API yang dijelaskan di atas,
Anda dapat menentukan agar 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_ERROR_UNKNOWN
|
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 pengguna memiliki aplikasi smartwatch:
-
Dengan
NodeClient
, temukan semua smartwatch yang tersambung ke ponsel pengguna. Untuk informasi selengkapnya, lihat contoh. -
Dengan
CapabilityClient
, periksa smartwatch pengguna mana yang sudah menginstal aplikasi. -
Jika aplikasi tidak diinstal di semua smartwatch pengguna (bandingkan
hasil dari Langkah 1 dengan hasil dari Langkah 2), izinkan pengguna untuk
membuka Play Store di perangkat Wear yang tersisa dari ponsel melalui
metode
RemoteIntent.startRemoteActivity()
. Secara khusus, gunakan URI market untuk aplikasi Wear (yang mungkin berbeda dari 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, developer harus menggunakan FLP (Penyedia Lokasi Fusi]) untuk mendapatkan data lokasi di smartwatch. Lihat Mendeteksi lokasi di Wear.
Jika ponsel pendamping tersedia, FLP akan menggunakannya untuk mendapatkan data lokasi.
Mendapatkan hanya data yang diperlukan
Secara umum, saat mendapatkan data dari internet, sebaiknya hanya ambil data yang diperlukan. 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 untuk data tambahan yang hanya ditujukan 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
Contoh WearVerifyRemoteApp lebih lanjut menunjukkan penggunaan API yang dibahas di halaman ini.