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 ExcersizeSampleCompose contoh 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.](https://developer.android.com/static/images/training/wear/multiple_permissions.png?authuser=6&hl=id)
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.](https://developer.android.com/static/images/training/wear/open_on_phone.png?authuser=6&hl=id)
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.](https://developer.android.com/static/images/training/wear/phone_requests_wear.png?authuser=6&hl=id)
Aplikasi ponsel meminta beberapa izin sekaligus
![](https://developer.android.com/static/images/training/wear/companion-device-profile.png?authuser=6&hl=id)
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.](https://developer.android.com/static/images/training/wear/ask_in_context.png?authuser=6&hl=id)
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. Ketika pengguna mengetuk tanda, layar permintaan izin akan muncul, yang memungkinkan pengguna membuka kunci lokasi deteksi.
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.](https://developer.android.com/static/images/training/wear/educate_in_context.png?authuser=6&hl=id)
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.](https://developer.android.com/static/images/training/wear/deny.png?authuser=6&hl=id)
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.](https://developer.android.com/static/images/training/wear/ask_again.png?authuser=6&hl=id)
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.](https://developer.android.com/static/images/training/wear/for_settings.png?authuser=6&hl=id)
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- Meminta izin runtime
- Izin Bluetooth
- Berkomunikasi di latar belakang