Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Aplikasi Wear mandiri

Aplikasi Wear OS dapat berfungsi secara independen dari aplikasi ponsel. Pengguna dapat menyelesaikan tugas pada smartwatch, tanpa perlu mengakses ponsel Android atau iOS.

Lihat resource terkait berikut:

Merencanakan aplikasi Anda

Anda dapat menggunakan fitur multi-APK dari Google Play untuk memublikasikan lebih dari satu APK dengan listing aplikasi yang sama. APK smartwatch harus didistribusikan menggunakan fitur tersebut; tidak menyematkan APK jam di APK ponsel. Untuk informasi tentang cara menyiapkan aplikasi untuk distribusi melalui Google Play Store, lihat Memaketkan dan Mendistribusikan Aplikasi Wear dan Cara Kerja Beberapa APK.

Catatan: Agar memenuhi syarat untuk dipromosikan di Google Play Store pada perangkat Wear (artinya, Play Store versi smartwatch), aplikasi Anda harus berfungsi secara independen dari aplikasi ponsel. Dukungan iOS dan Android diperlukan.

Secara umum, level API minimum dan target untuk aplikasi mandiri, juga untuk Wear 2.0, adalah 25. Level SDK minimum bisa 23 hanya jika Anda menggunakan APK yang sama untuk Wear 1.0 dan 2.0 (yang berarti Anda memiliki APK Wear 1.0 tersemat).

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, Anda harus:

  • Menyediakan APK Wear versi mandiri, dan
  • Terus menyematkan suatu versi APK Wear di dalam APK ponsel

Perhatian: Jika Anda memublikasikan update atas APK ponsel produksi yang sudah ada, sementara APK ponsel produksi tersebut telah menghapus APK Wear tersemat, maka pengguna produksi yang mengupdate APK ponsel sebelum menginstal APK Wear mandiri akan kehilangan aplikasi Wear yang sudah ada beserta datanya. Jika Anda memublikasikan update atas APK ponsel produksi yang sudah ada, lanjutkan untuk menyematkan APK smartwatch Anda ke dalam APK ponsel tersebut.

Izin runtime diperlukan untuk aplikasi mandiri.

Untuk informasi tentang permintaan jaringan dan akses jaringan bandwidth tinggi, lihat Akses dan Sinkronisasi Jaringan.

Mengidentifikasi aplikasi sebagai mandiri

Aplikasi Wear harus memiliki elemen meta-data di file Android Manifest, sebagai turunan dari elemen <application>. Nama elemen meta-data adalah com.google.android.wearable.standalone dan nilainya harus true atau false. Elemen ini menunjukkan apakah aplikasi smartwatch Anda termasuk aplikasi mandiri, yang berarti dapat beroperasi tanpa perlu aplikasi Android versi ponsel. Jika setelan untuk elemen adalah true, aplikasi Anda dapat tersedia di Play Store pada smartwatch yang disambungkan ke iPhone, asalkan APK aktif Anda di semua saluran (misalnya, di saluran beta memiliki elemen yang ditetapkan ke true. Jika tidak semua APK Anda (alfa, beta, dan produksi) yang saat ini ditayangkan kepada pengguna memiliki setelan di atas, aplikasi Anda tidak akan tersedia saat pengguna melakukan penelusuran di smartwatch yang tersambung ke iPhone.

Aplikasi smartwatch dapat dikategorikan 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 sebagai 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 pengguna ponsel Android yang tidak memiliki Play Store, aplikasi smartwatch bisa digunakan tanpa aplikasi ponsel Android.

Jika aplikasi smartwatch bergantung pada aplikasi ponsel, tetapkan nilai elemen meta-data di atas ke false. Menetapkan elemen ke false menandakan bahwa aplikasi smartwatch harus dipasang hanya di jam yang disambungkan dengan ponsel yang memiliki Play Store.

Catatan: Meskipun nilainya false, aplikasi smartwatch dapat diinstal sebelum aplikasi ponsel diinstal. 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 Anda. Atribut harus menunjukkan bahwa aplikasi tersebut adalah aplikasi 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 telepon. Secara opsional, kode yang khusus untuk faktor bentuk dapat berupa modul terpisah.

Misalnya, kode umum untuk jaringan dapat ditempatkan dalam library bersama.

Anda dapat menggunakan API penyimpanan Android standar untuk menyimpan data secara lokal, seperti yang Anda lakukan di ponsel. Misalnya, Anda dapat menggunakan SharedPreferences API atau library persistensi Room.

Mendeteksi aplikasi Anda di perangkat lain

Aplikasi smartwatch Anda dapat mendeteksi ketersediaan aplikasi ponsel yang terkait, begitu pula sebaliknya.

Aplikasi smartwatch atau aplikasi ponsel Anda dapat menggunakan CapabilityClient untuk menunjukkan eksistensi 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 lebih lanjut, lihat Memberitahukan kapabilitas.

Jika aplikasi Anda tidak dapat mendeteksi satu sama lain, Anda dapat memungkinkan pengguna untuk membuka listingan Play Store di perangkat jarak jauh miliknya. Solusi ini ditujukan untuk aplikasi smartwatch yang memerlukan keberadaan aplikasi ponsel pendamping agar dapat berfungsi dengan baik. Prasyaratnya adalah memeriksa keberadaan Play Store di perangkat jarak jauh.

Perhatikan bahwa tidak semua ponsel mendukung Play Store (misalnya iPhone, dll.).

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 Wear API. Dalam referensi tersebut juga terdapat informasi tentang class PhoneDeviceType, yang berisi metode getPhoneDeviceType() yang memungkinkan aplikasi Wear untuk memeriksa apakah ponsel pendamping adalah perangkat Android atau iOS.

Menentukan nama kapabilitas untuk mendeteksi aplikasi Anda

Untuk aplikasi yang sesuai dengan setiap jenis perangkat (smartwatch atau ponsel), tentukan string unik untuk nama kapabilitas dalam file res/values/wear.xml.

Misalnya, dalam modul seluler Anda, file wear.xml dapat menyertakan hal 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_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 Anda dapat mendeteksi apakah ponsel pendamping yang digunakan pengguna memiliki aplikasi ponsel Anda:

  1. Gunakan CapabilityClient untuk memeriksa apakah aplikasi ponsel Anda diinstal pada ponsel yang disambungkan. Untuk informasi selengkapnya, lihat contoh.
  2. Jika aplikasi ponsel tidak terinstal di ponsel, gunakan metode PhoneDeviceType.getPhoneDeviceType() untuk memeriksa jenis ponsel.
  3. Jika PhoneDeviceType.DEVICE_TYPE_ANDROID ditampilkan, ponsel adalah ponsel Android. Panggil RemoteIntent.startRemoteActivity() di perangkat Wear untuk membuka app store di ponsel. Gunakan URI market untuk aplikasi ponsel Anda (yang mungkin berbeda dengan URI ponsel). Misalnya, gunakan URI market seperti: market://details?id=com.example.android.wearable.wear.finddevices
  4. Jika PhoneDeviceType.DEVICE_TYPE_IOS dikembalikan, artinya ponsel adalah ponsel iOS (tanpa Play Store tersedia). Buka App Store di iPhone dengan memanggil RemoteIntent.startRemoteActivity() di perangkat Wear. Anda dapat menentukan URL iTunes aplikasi, misalnya, https://itunes.apple.com/us/app/yourappname. Pada iPhone, dari Wear OS, Anda tidak dapat menentukan secara terprogram apakah aplikasi ponsel sudah diinstal. Sebagai praktik terbaik, sediakan mekanisme bagi pengguna (misalnya tombol) untuk memicu akses App Store secara manual.

Perhatikan bahwa dengan RemoteIntentRemoteIntent 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 kembali 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; perlu dilakukan pemeriksaan lagi.

Pendeteksian aplikasi mulai dari ponsel Android

Ponsel Android Anda dapat mendeteksi apakah perangkat Wear milik pengguna menginstal aplikasi smartwatch Anda:

  1. Dengan menggunakan NodeClient, temukan semua smartwatch yang tersambung ke ponsel pengguna. Untuk informasi selengkapnya, lihat contoh.
  2. Dengan menggunakan CapabilityClient, periksa smartwatch pengguna mana yang sudah menginstal aplikasi Anda.
  3. Jika aplikasi Anda tidak diinstal di semua smartwatch pengguna (bandingkan hasil dari Langkah 1 dengan hasil dari Langkah 2), izinkan pengguna membuka Play Store di perangkat Wear yang tersisa dari ponsel melalui metode RemoteIntent.startRemoteActivity(). Secara khusus, gunakan URI pasar untuk aplikasi Wear (yang mungkin berbeda dengan URI aplikasi ponsel Anda). 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, sebaiknya developer menggunakan Penyedia Lokasi Fusi (FLP) 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, ketika mendapatkan data dari internet, sebaiknya Anda hanya mengambil data yang diperlukan. Jika tidak, Anda dapat menyebabkan latensi, penggunaan memori, dan penggunaan baterai yang tidak perlu.

Saat smartwatch terhubung melalui koneksi Bluetooth LE, aplikasi Anda mungkin dapat mengakses bandwidth sebesar 4 kilobyte per detik saja, tergantung smartwatch-nya. Oleh karena itu, langkah-langkah berikut disarankan:

  • Audit permintaan dan respons jaringan Anda untuk data tambahan yang hanya ditujukan untuk aplikasi ponsel
  • Kecilkan ukuran gambar besar sebelum Anda mengirimkannya melalui jaringan ke smartwatch

Untuk kasus yang memerlukan jaringan bandwidth tinggi, lihat Akses jaringan bandwidth tinggi.

Contoh kode lainnya

Contoh WearVerifyRemoteApp dan SpeedTracker mendemonstrasikan lebih lanjut penggunaan API yang dibahas di halaman ini.

contoh menunjukkan lebih lanjut penggunaan API yang dibahas di halaman ini.