Meminta izin di Wear OS

keywords: wear, permissions, collection_guideslandingwear image_path: images/training/wear/multiple_permissions.png

Meminta izin di Wear OS mirip dengan meminta izin di aplikasi seluler, dengan beberapa kasus penggunaan tambahan. Dokumen ini menganggap bahwa Anda telah memahami cara kerja izin Android. Jika Anda belum memahaminya, tinjau cara kerja izin di Android.

Sama seperti di aplikasi seluler, pengguna harus memberikan izin ke aplikasi Wear untuk mengakses fungsi tertentu. Di aplikasi Wear, sediakan fungsi penting tanpa meminta izin apa pun.

Skenario izin

Ada beberapa skenario yang mungkin Anda alami saat meminta izin berbahaya di Wear OS:

  • Aplikasi Wear meminta izin untuk aplikasi yang berjalan di perangkat wearable.

  • Aplikasi Wear meminta izin untuk aplikasi yang berjalan di ponsel.

  • Aplikasi ponsel meminta izin untuk aplikasi yang berjalan di perangkat wearable.

  • Aplikasi ponsel meminta beberapa izin yang hanya dapat digunakan saat perangkat wearable terhubung.

Untuk melihat semua skenario ini dalam aplikasi yang berfungsi, tinjau contoh ExerciseSampleCompose di GitHub.

Bagian berikut menjelaskan setiap skenario tersebut. Untuk informasi lebih detail tentang permintaan izin, lihat bagian Pola permintaan izin.

Aplikasi Wear meminta izin perangkat wearable

Saat aplikasi Wear meminta izin untuk aplikasi yang berjalan di perangkat wearable, sistem akan menampilkan dialog untuk meminta persetujuan pengguna mengenai izin tersebut. Di aplikasi, mintalah izin hanya jika sudah jelas bagi pengguna mengapa izin diperlukan untuk melakukan operasi tertentu.

Tinjau prinsip izin untuk memastikan Anda memberikan pengalaman terbaik bagi pengguna, serta ingatlah untuk memeriksa shouldShowRequestPermissionRationale() dan memberikan informasi tambahan sesuai kebutuhan.

Jika aplikasi atau tampilan jam memerlukan lebih dari satu izin dalam satu waktu, permintaan izin akan muncul satu demi satu.

Beberapa layar izin, satu demi satu.
Gambar 1. Layar izin muncul secara bergantian.

Aplikasi Wear meminta izin ponsel

Saat aplikasi Wear meminta izin ponsel—misalnya, aplikasi wearable ingin mengakses foto atau data sensitif lainnya di aplikasi versi seluler—aplikasi Wear harus mengarahkan pengguna ke ponsel untuk menerimanya. Di sana, aplikasi ponsel dapat memberikan informasi tambahan kepada pengguna melalui aktivitas. Dalam aktivitas ini, sertakan dua tombol: satu untuk memberikan izin, dan satu untuk menolaknya.

Aplikasi Wear mengarahkan pengguna ke ponsel untuk memberikan izin.
Gambar 2. Mengarahkan pengguna ke ponsel untuk memberikan izin.

Aplikasi ponsel meminta izin perangkat wearable

Jika pengguna menggunakan aplikasi ponsel dan aplikasi memerlukan izin wearable—misalnya, untuk memuat musik di awal jika ponsel terputus—aplikasi ponsel akan mengarahkan pengguna ke perangkat wearable untuk menyetujui izin tersebut. Versi aplikasi wearable menggunakan metode requestPermissions() untuk memicu dialog izin sistem.

Aplikasi ponsel mengarahkan pengguna ke perangkat wearable untuk memberikan izin.
Gambar 3. Mengarahkan pengguna ke perangkat wearable untuk memberikan izin.

Aplikasi ponsel meminta beberapa izin sekaligus

Gambar 4. Dialog izin yang menggunakan profil perangkat pendamping untuk meminta beberapa izin dalam satu permintaan.

Aplikasi partner di Android 12 (API level 31) dan yang lebih baru dapat menggunakan profil perangkat pendamping saat terhubung ke smartwatch. Menggunakan profil dapat menyederhanakan proses pendaftaran dengan menggabungkan pemberian sekumpulan izin khusus jenis perangkat ke dalam satu langkah.

Izin paket diberikan ke aplikasi pendamping setelah perangkat terhubung, dan hanya berlangsung selama perangkat terasosiasi. Menghapus aplikasi atau menghapus pengaitan akan menghapus izin. Untuk detailnya, lihat AssociationRequest.Builder.setDeviceProfile().

Pola permintaan izin

Ada berbagai pola untuk meminta izin dari pengguna. Menurut urutan prioritas, yaitu:

  • Tanya dalam konteks ketika izin jelas diperlukan untuk fungsi tertentu, tetapi tidak diperlukan untuk menjalankan aplikasi secara keseluruhan.

  • Edukasi dalam konteks ketika alasan untuk meminta izin tidak terlalu jelas, dan izin tidak diperlukan untuk menjalankan aplikasi secara keseluruhan.

Pola ini dijelaskan di bagian berikut.

Tanya dalam konteks

Mintalah izin jika sudah jelas bagi pengguna mengapa izin diperlukan untuk melakukan operasi tertentu. Pengguna kemungkinan besar memberikan izin ketika mereka memahami hubungannya dengan fitur yang ingin mereka gunakan.

Misalnya, aplikasi mungkin memerlukan lokasi pengguna untuk menunjukkan tempat-tempat terdekat yang menarik. Ketika pengguna mengetuk layar untuk menelusuri tempat-tempat terdekat, aplikasi dapat segera meminta izin lokasi, karena ada hubungan yang jelas antara menelusuri tempat-tempat terdekat dan diperlukannya izin lokasi. Jelasnya hubungan ini membuat aplikasi tidak perlu lagi menampilkan layar edukasi tambahan.

Aplikasi meminta izin ketika jelas diperlukan.
Gambar 5. Meminta izin dalam konteks.

Edukasi dalam konteks

Gambar 6 menunjukkan contoh edukasi dalam konteks. Aplikasi tidak memerlukan izin untuk memulai timer, tetapi tanda edukasi inline menunjukkan bahwa ada bagian dari aktivitas—deteksi lokasi—yang terkunci. Saat pengguna mengetuk tanda tersebut, layar permintaan izin akan muncul, sehingga pengguna dapat membuka kunci deteksi lokasi.

Gunakan metode shouldShowRequestPermissionRationale() untuk membantu aplikasi memutuskan apakah akan memberikan informasi lebih lanjut atau tidak. Untuk mengetahui detail tambahan, lihat Meminta izin aplikasi. Atau, Anda dapat memeriksa cara aplikasi contoh speaker di GitHub menangani tampilan informasi.

Ketika kebutuhan izin muncul, aplikasi menjelaskan mengapa izin diperlukan.
Gambar 6. Edukasi dalam konteks.

Menangani penolakan

Jika pengguna menolak permintaan izin yang tidak penting untuk aktivitas yang dimaksud, jangan menghalanginya untuk melanjutkan aktivitas. Jika bagian tertentu dari aktivitas tersebut dinonaktifkan karena permintaan izin yang ditolak, berikan masukan visual yang dapat ditindaklanjuti.

Gambar 7 menunjukkan penggunaan ikon gembok untuk menerangkan bahwa fitur tersebut terkunci karena pengguna tidak memberikan izin untuk menggunakannya.

Ketika pengguna menolak izin, ikon gembok akan ditampilkan bersama dengan fitur terkait.
Gambar 7. Ikon gembok menunjukkan bahwa fitur terkunci karena permintaan izin ditolak.

Ketika dialog izin perangkat wearable yang sebelumnya ditolak muncul untuk kedua kalinya, dialog akan berisi opsi Tolak, jangan tampilkan lagi. Jika pengguna memilih opsi ini, satu-satunya cara bagi mereka untuk memberikan izin ini di masa mendatang adalah dengan membuka aplikasi Setelan perangkat wearable.

Penawaran sistem untuk berhenti meminta izin.
Gambar 8. Pengguna dapat mengakses permintaan izin yang sebelumnya telah ditolak dua kali melalui Setelan.

Pelajari lebih lanjut cara menangani penolakan izin.

Izin untuk layanan

Hanya aktivitas yang dapat memanggil metode requestPermissions(). Jadi, jika pengguna berinteraksi dengan aplikasi Anda melalui layanan—misalnya melalui tampilan jam—layanan harus membuka aktivitas sebelum meminta izin. Dalam aktivitas ini, berikan edukasi tambahan tentang alasan izin diperlukan.

Secara umum, jangan meminta izin untuk tampilan jam. Sebagai gantinya, terapkan detail dan biarkan pengguna memilih data mana yang akan ditampilkan melalui detail.

Setelan

Pengguna dapat mengubah izin aplikasi Wear di Setelan kapan saja. Saat pengguna mencoba melakukan sesuatu yang memerlukan izin, panggil metode checkSelfPermission() terlebih dahulu untuk melihat apakah aplikasi memiliki izin untuk menjalankan operasi.

Lakukan pemeriksaan ini meskipun sebelumnya pengguna telah memberikan izin, karena pengguna mungkin telah mencabutnya.

Pengguna dapat mengubah izin melalui aplikasi Setelan.
Gambar 9. Pengguna dapat mengubah izin menggunakan aplikasi Setelan.