Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

Aplikasi Wear mandiri

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

Lihat referensi terkait berikut ini:

Merencanakan aplikasi Anda

Anda dapat menggunakan fitur multi-APK dari Google Play untuk memublikasikan lebih dari satu APK dengan listing aplikasi yang sama. APK jam tangan harus didistribusikan menggunakan fitur tersebut; hindari menyematkan APK jam tangan ke dalam APK ponsel. Untuk informasi tentang cara menyiapkan aplikasi Anda untuk distribusi melalui Google Play Store, lihat Mengemas dan Mendistribusikan Aplikasi Wear dan Cara Kerja Multi-APK.

Catatan: Agar memenuhi syarat untuk dipromosikan di Google Play Store pada perangkat Wear (artinya, Play Store versi jam tangan), 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 jam tangan 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 jam tangan 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 sebagai aplikasi mandiri

Aplikasi Wear harus memiliki elemen meta-data dalam file Manifes Android, sebagai turunan dari elemen <application>. Nama elemen meta-data ini adalah com.google.android.wearable.standalone dan harus bernilai true atau false. Elemen ini menunjukkan apakah aplikasi jam Anda termasuk aplikasi mandiri, yang berarti dapat beroperasi tanpa perlu aplikasi Android versi ponsel. Jika elemen tersebut ditetapkan ke true, aplikasi Anda dapat disediakan di Play Store pada jam tangan yang tersambung ke iPhone, asalkan APK aktif Anda di semua saluran (misalnya dalam saluran beta) menetapkan elemen ini 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 jam tangan yang tersambung ke iPhone.

Aplikasi jam 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 jam tangan dianggap sebagai kategori mandiri. Anda harus menunjukkan kategorisasi ini ke Google Play Store dengan menetapkan nilai elemen meta-data 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 jam tangan bisa digunakan tanpa aplikasi ponsel Android.

Jika aplikasi jam tangan bergantung pada aplikasi ponsel, tetapkan nilai elemen meta-data di atas ke false. Menetapkan elemen ini ke false menandakan bahwa aplikasi jam tangan sebaiknya hanya diinstal di jam tangan yang tersambung ke ponsel yang memiliki Play Store.

Catatan: Meskipun nilai ini ditetapkan ke false, aplikasi jam tangan dapat diinstal sebelum aplikasi ponsel diinstal. Karena itu, jika aplikasi jam tangan mendeteksi bahwa ponsel pendamping tidak memiliki aplikasi ponsel yang diperlukan, aplikasi jam akan meminta pengguna untuk menginstal aplikasi ponsel tersebut.

Menetapkan aplikasi sebagai aplikasi Wear

Anda harus memastikan bahwa tag <uses-feature> telah ditetapkan dalam file Manifes Android pada aplikasi Anda. Tag ini harus menunjukkan bahwa aplikasi tersebut adalah aplikasi watch, misalnya, android:name="android.hardware.type.watch" sebagai 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. Atau, kode yang khusus untuk faktor bentuk tertentu dapat dimasukkan dalam modul tersendiri.

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 jam tangan Anda dapat mendeteksi ketersediaan aplikasi ponsel yang terkait, dan begitu pula sebaliknya.

Aplikasi ponsel atau aplikasi jam tangan dapat menggunakan CapabilityClient untuk memberitahukan keberadaan aplikasi tersebut ke perangkat yang tersambung. Hal ini dapat dilakukan secara statis dan dinamis. Ketika aplikasi berada di suatu node dalam jaringan Wear pengguna (misalnya di ponsel, jam tangan yang tersambung, atau di cloud), CapabilityClient memungkinkan aplikasi lain mendeteksinya jika 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 jam tangan 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 jam tangan mandiri memerlukan aplikasi ponsel
  • Aplikasi ponsel memerlukan aplikasi jam tangan mandiri

Silakan pelajari sampel yang menunjukkan fungsionalitas ini. Untuk informasi lebih lanjut tentang class yang dijelaskan di bawah, lihat Referensi Wear API. Selain itu, dalam referensi tersebut terdapat informasi tentang class PhoneDeviceType, yang berisi metode getPhoneDeviceType() yang memungkinkan aplikasi Wear Anda untuk memeriksa apakah ponsel pendamping adalah perangkat Android atau iOS.

Menentukan nama kapabilitas untuk mendeteksi aplikasi Anda

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

Misalnya, dalam modul seluler Anda, file wear.xml dapat mencakup baris berikut:

    <resources>
        <string-array name="android_wear_capabilities">
            <item>verify_remote_example_phone_app</item>
        </string-array>
    </resources>
    

Di modul wear, file wear.xml akan berisi nilai yang berbeda untuk nama kapabilitas, seperti berikut:

    <resources>
        <string-array name="android_wear_capabilities">
            <item>verify_remote_example_wear_app</item>
        </string-array>
    </resources>
    

Untuk informasi lebih lanjut, lihat Memberitahukan kapabilitas.

Pendeteksian aplikasi dan membuka URL dari jam tangan

Aplikasi jam tangan 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 tersambung. Untuk informasi lebih lanjut, lihat sampel.
  2. Jika aplikasi ponsel Anda tidak terinstal di ponsel, gunakan metode PhoneDeviceType.getPhoneDeviceType() untuk memeriksa jenis ponsel.
  3. Jika PhoneDeviceType.DEVICE_TYPE_ANDROID ditampilkan, berarti itu adalah ponsel Android. Panggil RemoteIntent.startRemoteActivity() di perangkat Wear untuk membuka app store di ponsel tersebut. 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 ditampilkan, berarti itu adalah ponsel iOS (Play Store tidak tersedia). Buka App Store di iPhone dengan memanggil RemoteIntent.startRemoteActivity() di perangkat Wear. Anda dapat menentukan URL iTunes aplikasi Anda, misalnya, https://itunes.apple.com/us/app/yourappname. Di iPhone, dan dari Wear OS, Anda tidak dapat menentukan secara terprogram apakah aplikasi ponsel Anda terinstal. Sebagai praktik terbaik, sediakan mekanisme bagi pengguna (misalnya tombol) untuk memicu akses App Store secara manual.

Perhatikan bahwa dengan RemoteIntent API yang dijelaskan di atas, Anda dapat menentukan agar semua URL dibuka di ponsel dari jam tangan, 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 jam tangan:

Kotlin

    var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)
    

Java

    int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);
    

Nilai yang ditampilkan oleh metode getPhoneDeviceType() adalah salah satu dari berikut ini:

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 lagi nanti.

Pendeteksian aplikasi mulai dari ponsel Android

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

  1. Menggunakan NodeClient, temukan semua jam tangan yang tersambung ke ponsel pengguna. Untuk informasi lebih lanjut, lihat sampel.
  2. Menggunakan CapabilityClient, periksa jam tangan pengguna mana yang sudah menginstal aplikasi Anda.
  3. Jika aplikasi Anda belum diinstal pada semua jam tangan pengguna (bandingkan hasil dari Langkah 1 dengan hasil dari Langkah 2), izinkan pengguna membuka Play Store pada perangkat Wear lainnya dari ponsel melalui metode RemoteIntent.startRemoteActivity(). Secara khusus, gunakan URI market 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 jam tangan yang tersambung ke iPhone

Untuk jam tangan yang tersambung ke iPhone, sebaiknya developer menggunakan Penyedia Lokasi Fusi (FLP) untuk mendapatkan data lokasi di jam tangan. 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 jam tangan terhubung melalui koneksi Bluetooth LE, aplikasi Anda mungkin dapat mengakses bandwidth sebesar 4 kilobyte per detik saja, tergantung jam tangannya. 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 jam tangan

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

Contoh kode lainnya

Sampel Android WearVerifyRemoteApp dan Android SpeedTracker menunjukkan lebih lanjut penggunaan API yang dibahas di halaman ini.