Cara Mengatur dan Membuat App Permission di Android dengan Mudah!! - DP BBM 23

Breaking

Post Top Ad

Post Top Ad



Saturday, October 2, 2021

Cara Mengatur dan Membuat App Permission di Android dengan Mudah!!

DP BBM 23 adalah sebuah blog gratis, yang menyajikan seputar kata - kata, DP BBM, AdSense, Blogger, Tutorial, Windows 10, ISO, Theme Windows 10, etc! dan sobat saat ini sedang membuka halaman Cara Mengatur dan Membuat App Permission di Android dengan Mudah!!, jika suka jangn sungkan untuk klik, like, share dan subcribe ya gaes!

Baca Juga


DP BBM 23Cara Mengatur dan Membuat App Permission di Android dengan Mudah!! — Hi gengs!! Pada kesempatan kali ini aku mau sedikit membahas mengenai cara mengatur maupun cara membuat permission atau perizinan pada sebuah aplikasi Android, yang mungkin saja dari sekian pembaca blog DP BBM 23 lagi membutuhkan atau lagi mencari cari caranya, oleh karena itu sangat pas sekali kamu membaca artikel ini!! Hehehe...
Ok Next gengs!! Mungkin kamu bertanya-tanya apa itu App Permission? Apa sih App Permission? App Permission berasal dari bahasa Inggris yang berarti Izin Aplikasi?..

Mari kita bahas, Ketika kamu menginstall sebuah aplikasi di Android, biasanya secara otomatis ada pemberitahuan untuk mengizinkan akses ke HP kamu bukan?.. Seperti izin mengakses kamera, kontak, lokasi, jaringan internet, galeri, dll (tergantung aplikasi apa yang kamu downloadnya)..

Pada dasarnya Sistem Android menampilkan daftar permintaan yang diperlukan saat suatu aplikasi akan diinstal dari Google Play Store.. Daftar izin ini akan sangat penting karena berhubungan dengan data yang ada di gadged kamu gengs!!

Namun, ada kalanya berupa data sensitif seperti permintaan untuk mengakses kontak ataupun lokasi kamu, Oleh karenanya, ada baiknya jika kamu membaca dengan teliti satu persatu izin yang diminta untuk menjaga keamanan data sendiri..

Tapi Sayangnya, setiap user malas membaca dan membuatnya selalu menekan tombol accept.. it's okey tidak masalah juga karena permission itu biasanya berkaitan dengan aplikasinya sendiri.. Jika kita menonaktifkan salah satunya, mungkin aplikasi tersebut tidak bisa berjalan..

Contoh: Ketika kamu install aplikasi chat WhatsApp, tentu aplikasi akan meminta izin untuk mengakses kontak yang ada di smartphone kalian.. Nah, izin akses kontak ini harus diaktifkan agar bisa terhubung selalu ke kontak yang ada di smartphone kalian..

Jika permission ini tidak kalian izinkan atau di nonaktifin, maka WhatsApp kalian tidak bisa membaca nomor-nomor yang ada di smartphone kalian, begitupun untuk perizinan yang lainnya, seperti akses kamera, dll

Lalu yang jadi pertanyaannya, bagaimana jika ingin mengecek kembali untuk memastikan ada fitur yang aktif atau tidaknya? Cara nya sangat mudah dan gampang yaitu sebagai berikut

  • Buka menu Setting
  • Buka menu More Setting
  • Lalu pilih Applications (untuk menampilkan semua aplikasi yang terinstal di smartphone kalian)
  • Selanjutnya pilih aja Installed (untuk menampilkan semua aplikasi yang kalian download, bukan aplikasi bawaan pabrikan hp nya)
  • Lalu pilih aplikasi yang kalian tuju, misalnya disini aku contohkan WhatsApp, klik saja aplikasinya
  • Berikutnya klik bagian Permissions maka akan tampil seperti pada gambar di bawah, Note: aku menggunakan hp Oppo A37f (sesuaikan saja dengan hp masing-masing)
  • Pada gambar di atas dapat kita lihat perizinannya, seperti Baca Kontak, Kirim Pesan, Kirim MMS, Jaringan Seluler, Wi-Fi, Buka Informasi Lokasi, Gunakan Kamera, Rekam Suara/Panggilan, Ubah Atau Hapus Kontak

Di sana tidak aku izinkan semuanya, hanya ada beberapa saja yang di bolehkan atau di izinkan, nah untuk cara mengaktifkan/mengizinkannya, tinggal klik/tap saja pada bagian yang mau di izinkannya, seperti contoh di bagian.

  • Kirim Pesan : Tanya dahulu, klik/tap untuk merubahnya menjadi izinkan
  • Kirim MMS : Tanya dahulu, caranya sama tinggal klik/tap untuk merubahnya menjadi izinkan
  • Buka Informasi Lokasi (GPS) : disana aku tidak mengizinkannya, untuk caranya sama tinggal klik/tap lalu pilih izinkan

Nah, jadi begitulah gengs kira-kira nya, untuk mengecek ulang aplikasi yang ingin di lihat maupun di ubah perizinannya, semisal pada aplikasi tertentu tidak ingin mengizinkan akses kamera, caranya seperti tadi di atas, masuk kebagian settings terlebih dulu!!

Ok Next gengs!! Itulah tadi diatas mengenai cara mengatur permission atau akses izin di smartphone android, lalu bagaimana caranya membuat permission tersebut?..

Pertanyaan tersebut pastinya untuk kalian yang lagi belajar membuat aplikasi android, dan masih kebingungan cara penerapan atau cara membuatnya, iya kan? Hehe

Ok baik, mari kita bahas mengenai cara membuat App permission di Android, untuk pemula yang baru belajar membuat aplikasi Android, simak ulasannya dibawah ini..
Disini aku contohkan dengan aplikasi yang sebelumnya sudah aku buat, yaitu aplikasi DP BBM 23 App, di dalam aplikasi tersebut aku buat 13 permission (atau 13 perizinan yang di tanamkan di dalam aplikasi tersebut)..

Seprti layaknya aplikasi-aplikasi yang kalian unduh/download di playstore, yaitu ada perizinan lokasi, baca kontak, galeri, dll, dan bisa kalian liat pada saat aplikasi akan di instal, (seperti pada contoh gambar).

Ok next gengs, tanpa basa basi lagi, karena pembahasannya juga lumayan cukup agak panjang, dan disini aku contohkan untuk membuat/menerapkan permission lokasi atau GPS pada sebuah aplikasi.. check this out!!..

Cara Membuat App Permission Pada Aplikasi Android

Setiap aplikasi Android berjalan dalam sandbox dengan akses terbatas.. Jika aplikasi perlu menggunakan resource atau informasi di luar sandbox-nya sendiri, kamu dapat mendeklarasikan izin dan menyiapkan permintaan izin yang menyediakan akses ini.. Langkah-langkah ini adalah bagian dari alur kerja untuk menggunakan izin..

Jika kamu mendeklarasikan izin berbahaya dan jika aplikasi diinstal pada perangkat yang menjalankan Android 6.0 (API level 23) atau yang lebih tinggi, kamu harus meminta izin berbahaya saat runtime dengan mengikuti langkah-langkah ini..

Jika kamu tidak mendeklarasikan izin berbahaya, atau jika aplikasi diinstal di perangkat yang menjalankan Android 5.1 (API level 22) atau lebih rendah, izin akan diberikan secara otomatis, dan kamu tidak perlu menyelesaikan langkah-langkah lainnya yang ada di artikel ini..

#1. Prinsip Dasar

Prinsip dasar untuk meminta izin saat runtime adalah sebagai berikut:
  • Minta izin dalam konteks, saat pengguna mulai berinteraksi dengan fitur yang memerlukan izin..
  • Jangan blokir pengguna.. Selalu berikan opsi untuk membatalkan alur UI edukatif yang terkait dengan izin..
  • Jika pengguna menolak atau mencabut izin yang diperlukan suatu fitur, turunkan versi aplikasi kamu dengan baik sehingga pengguna dapat terus menggunakan aplikasi kamu, mungkin bisa dilakukan dengan menonaktifkan fitur yang memerlukan izin tersebut..
  • Jangan asumsikan perilaku sistem apa pun.. Misalnya, jangan berasumsi bahwa izin muncul dalam grup izin yang sama.. Grup izin hanya membantu sistem meminimalkan jumlah dialog sistem yang ditampilkan kepada pengguna saat aplikasi meminta izin yang terkait erat..

#2. Alur kerja untuk meminta izin

Sebelum mendeklarasikan dan meminta izin runtime di aplikasi, kamu dapat memenuhi banyak kasus penggunaan di aplikasi, seperti mengambil foto, menjeda pemutaran media, dan menampilkan iklan yang relevan, tanpa perlu mendeklarasikan izin apa pun..

Jika kamu menyimpulkan bahwa aplikasi perlu mendeklarasikan dan meminta izin runtime, selesaikan langkah-langkah berikut:
  1. Dalam file manifes aplikasi, deklarasikan izin yang mungkin perlu diminta untuk aplikasi yang kamu buat..
  2. Rancang UX aplikasi kamu agar tindakan tertentu dalam aplikasi dikaitkan dengan izin runtime tertentu.. Pengguna harus mengetahui tindakan yang mungkin mengharuskan mereka memberikan izin bagi aplikasi yang kamu buat untuk mengakses data pribadi pengguna..
  3. Tunggu pengguna untuk memanggil tugas atau tindakan di aplikasi kamu yang memerlukan akses ke data pribadi pengguna tertentu.. Pada saat itu, aplikasi kamu dapat meminta izin runtime yang diperlukan untuk mengakses data tersebut..
  4. Periksa apakah pengguna telah memberikan izin runtime yang diperlukan aplikasi kamu.. Jika telah ada, aplikasi kamu dapat mengakses data pribadi pengguna.. Jika belum, lanjutkan ke langkah berikutnya.. yaitu kamu harus memeriksa apakah kamu memiliki izin tersebut setiap kali melakukan operasi yang memerlukan izin tersebut..
  5. Periksa apakah aplikasi kamu harus menampilkan alasan kepada pengguna, yang menjelaskan alasan pengguna harus memberikan izin runtime tertentu untuk aplikasi tersebut.. Jika sistem menentukan bahwa aplikasi kamu seharusnya tidak menampilkan alasan, lanjutkan langsung ke langkah berikutnya, tanpa menampilkan elemen UI..

    Namun, jika sistem menentukan bahwa aplikasi kamu harus menampilkan alasan, tampilkan alasan kepada pengguna dalam elemen UI.. Alasan ini harus menyatakan dengan jelas data yang dicoba diakses oleh aplikasi kamu, dan manfaat yang dapat aplikasi berikan kepada pengguna jika mereka memberikan izin runtime.. Setelah pengguna mengonfirmasi alasannya, lanjutkan ke langkah berikutnya..
  6. Minta izin runtime yang diperlukan aplikasi kamu untuk mengakses data pribadi pengguna.. Sistem menampilkan permintaan izin runtime, seperti yang ditampilkan pada ringkasan izin..
  7. Periksa respons pengguna, apakah mereka memilih untuk memberikan atau menolak izin runtime..
  8. Jika pengguna memberikan izin untuk aplikasi, kamu dapat mengakses data pribadi pengguna.. Jika pengguna menolak izin, turunkan pengalaman aplikasi kamu secara halus agar aplikasi menyediakan fungsi bagi pengguna, meskipun tanpa informasi yang dilindungi oleh izin tersebut..

#3. Menentukan apakah aplikasi sudah diberi izin

Untuk memastikan apakah pengguna sudah memberikan izin tertentu untuk aplikasi kamu, teruskan izin tersebut ke metode ContextCompat.checkSelfPermission(). Metode ini menampilkan PERMISSION_GRANTED atau PERMISSION_DENIED, tergantung apakah aplikasi yang kamu buat memiliki izin atau tidak..

#4. Jelaskan alasan aplikasi memerlukan izin

Jika metode ContextCompat.checkSelfPermission() menampilkan PERMISSION_DENIED, panggil shouldShowRequestPermissionRationale(). Jika metode ini menampilkan true, tampilkan UI edukasi kepada pengguna.. Pada UI ini, jelaskan alasan fitur yang ingin diaktifkan pengguna memerlukan izin tertentu..

#5. Meminta Izin

Setelah pengguna melihat UI edukasi, atau nilai hasil shouldShowRequestPermissionRationale() menunjukkan bahwa kamu tidak perlu menampilkan UI edukasi saat ini, minta izin Pengguna akan melihat dialog izin sistem, ketika mereka dapat memilih apakah akan memberikan izin tertentu ke aplikasi kamu atau tidak..

Secara tradisional, kamu mengelola sendiri kode permintaan sebagai bagian dari permintaan izin dan menyertakan kode permintaan ini dalam logika callback izin.. Opsi lainnya adalah menggunakan kontrak RequestPermission yang disertakan dalam library AndroidX, tempat kami mengizinkan sistem mengelola kode permintaan izin.. Karena menggunakan kontrak RequestPermission akan menyederhanakan, sebaiknya kamu menggunakannya jika memungkinkan..

#6. Mengizinkan sistem mengelola kode permintaan izin

Untuk mengizinkan sistem mengelola kode permintaan yang terkait dengan permintaan izin, tambahkan dependensi pada library berikut di file build.gradle pada modul yang kamu buat :
  • androidx.activity, versi 1.2.0 atau yang lebih baru..
  • androidx.fragment, versi 1.3.0 atau yang lebih baru..

Kemudian, Anda dapat menggunakan salah satu class berikut :
  • Untuk meminta satu izin, gunakan RequestPermission
  • Untuk meminta beberapa izin secara bersamaan, gunakan RequestMultiplePermissions

Dan Langkah-langkah dibawah ini menunjukkan cara menggunakan kontrak RequestPermission Prosesnya hampir sama untuk kontrak RequestMultiplePermissions
  1. Dalam inisialisasi aktivitas atau fragmen, teruskan implementasi ActivityResultCallback ke dalam panggilan ke registerForActivityResult(). ActivityResultCallback menentukan cara aplikasi kamu menangani respons pengguna terhadap permintaan izin..

    Simpan referensi ke nilai hasil registerForActivityResult() yang berjenis ActivityResultLauncher
  2. Untuk menampilkan dialog izin sistem saat diperlukan, panggil metode launch() pada instance ActivityResultLauncher yang kamu simpan pada langkah sebelumnya..

    Setelah launch() dipanggil, dialog izin sistem akan muncul.. Saat pengguna menentukan pilihan, sistem akan memanggil implementasi ActivityResultCallback secara asinkron, yang telah kamu tentukan pada langkah sebelumnya..

Note : Aplikasi yang kamu buat tidak dapat menyesuaikan dialog yang muncul saat kamu memanggil launch(), Untuk memberikan lebih banyak informasi atau konteks kepada pengguna, ubah UI aplikasi kamu agar lebih mudah bagi pengguna untuk memahami alasan fitur dalam aplikasi bahwa memerlukan izin tertentu.. Misalnya, dapat mengubah teks di tombol yang mengaktifkan fitur tersebut..

Selain itu, teks dalam dialog izin sistem merujuk ke grup izin yang terkait dengan izin yang kamu minta.. Pengelompokan izin ini dirancang untuk kemudahan penggunaan sistem, dan aplikasi tidak boleh mengandalkan izin yang ada di dalam atau di luar grup izin tertentu..

Dan dibawah ini penerapan untuk menunjukkan cara menangani respons izin..

#1. Kotlin
// Register the permissions callback, which handles the user's response to the

// system permissions dialog. Save the return value, an instance of

// ActivityResultLauncher. You can use either a val, as shown in this snippet,

// or a lateinit var in your onAttach() or onCreate() method.

val requestPermissionLauncher =

    registerForActivityResult(RequestPermission()

    ) { isGranted: Boolean ->

        if (isGranted) {

            // Permission is granted. Continue the action or workflow in your

            // app.

        } else {

            // Explain to the user that the feature is unavailable because the

            // features requires a permission that the user has denied. At the

            // same time, respect the user's decision. Don't link to system

            // settings in an effort to convince the user to change their

            // decision.

        }

    }

#2. Java
// Register the permissions callback, which handles the user's response to the

// system permissions dialog. Save the return value, an instance of

// ActivityResultLauncher, as an instance variable.

private ActivityResultLauncher requestPermissionLauncher =

    registerForActivityResult(new RequestPermission(), isGranted -> {

        if (isGranted) {

            // Permission is granted. Continue the action or workflow in your

            // app.

        } else {

            // Explain to the user that the feature is unavailable because the

            // features requires a permission that the user has denied. At the

            // same time, respect the user's decision. Don't link to system

            // settings in an effort to convince the user to change their

            // decision.

        }

    });

Dan berikut dibawah ini menunjukkan proses pemeriksaan izin yang direkomendasikan, dan permintaan izin kepada pengguna jika diperlukan..

#1. Kotlin
when {

    ContextCompat.checkSelfPermission(

            CONTEXT,

            Manifest.permission.REQUESTED_PERMISSION

            ) == PackageManager.PERMISSION_GRANTED -> {

        // You can use the API that requires the permission.

    }

    shouldShowRequestPermissionRationale(...) -> {

        // In an educational UI, explain to the user why your app requires this

        // permission for a specific feature to behave as expected. In this UI,

        // include a "cancel" or "no thanks" button that allows the user to

        // continue using your app without granting the permission.

        showInContextUI(...)

    }

    else -> {

        // You can directly ask for the permission.

        // The registered ActivityResultCallback gets the result of this request.

        requestPermissionLauncher.launch(

                Manifest.permission.REQUESTED_PERMISSION)

    }

}

#2. Java
if (ContextCompat.checkSelfPermission(

        CONTEXT, Manifest.permission.REQUESTED_PERMISSION) ==

        PackageManager.PERMISSION_GRANTED) {

    // You can use the API that requires the permission.

    performAction(...);

} else if (shouldShowRequestPermissionRationale(...)) {

    // In an educational UI, explain to the user why your app requires this

    // permission for a specific feature to behave as expected. In this UI,

    // include a "cancel" or "no thanks" button that allows the user to

    // continue using your app without granting the permission.

    showInContextUI(...);

} else {

    // You can directly ask for the permission.

    // The registered ActivityResultCallback gets the result of this request.

    requestPermissionLauncher.launch(

            Manifest.permission.REQUESTED_PERMISSION);

}

#7. Kelola sendiri kode permintaan izin

Sebagai alternatif untuk mengizinkan sistem mengelola kode permintaan izin, kamu dapat mengelola sendiri kode permintaan izin, Untuk melakukannya, sertakan kode permintaan dalam panggilan ke requestPermissions()

Note : Aplikasi kamu tidak dapat menyesuaikan dialog yang muncul saat kamu memanggil requestPermissions() Teks dalam dialog izin sistem merujuk pada grup izin, tetapi pengelompokan izin ini dirancang untuk kemudahan penggunaan sistem.. Aplikasi yang kamu buat tidak boleh mengandalkan izin yang ada di dalam atau di luar grup izin tertentu..

Berikut di bawah ini cara penerapan untuk menunjukkan cara meminta izin menggunakan kode permintaan..

#1. Kotlin
when {

    ContextCompat.checkSelfPermission(

            CONTEXT,

            Manifest.permission.REQUESTED_PERMISSION

            ) == PackageManager.PERMISSION_GRANTED -> {

        // You can use the API that requires the permission.

        performAction(...)

    }

    shouldShowRequestPermissionRationale(...) -> {

        // In an educational UI, explain to the user why your app requires this

        // permission for a specific feature to behave as expected. In this UI,

        // include a "cancel" or "no thanks" button that allows the user to

        // continue using your app without granting the permission.

        showInContextUI(...)

    }

    else -> {

        // You can directly ask for the permission.

        requestPermissions(CONTEXT,

                arrayOf(Manifest.permission.REQUESTED_PERMISSION),

                REQUEST_CODE)

    }

}

#2. Java
if (ContextCompat.checkSelfPermission(

        CONTEXT, Manifest.permission.REQUESTED_PERMISSION) ==

        PackageManager.PERMISSION_GRANTED) {

    // You can use the API that requires the permission.

    performAction(...);

} else if (shouldShowRequestPermissionRationale(...)) {

    // In an educational UI, explain to the user why your app requires this

    // permission for a specific feature to behave as expected. In this UI,

    // include a "cancel" or "no thanks" button that allows the user to

    // continue using your app without granting the permission.

    showInContextUI(...);

} else {

    // You can directly ask for the permission.

    requestPermissions(CONTEXT,

            new String[] { Manifest.permission.REQUESTED_PERMISSION },

            REQUEST_CODE);

}

Setelah pengguna merespons dialog izin sistem, sistem akan memanggil implementasi onRequestPermissionsResult() Sistem meneruskan respons pengguna ke dialog izin serta kode permintaan yang sudah kamu tentukan, untuk caranya sebagai berikut..

#1. Kotlin
override fun onRequestPermissionsResult(requestCode: Int,

        permissions: Array, grantResults: IntArray) {

    when (requestCode) {

        PERMISSION_REQUEST_CODE -> {

            // If request is cancelled, the result arrays are empty.

            if ((grantResults.isNotEmpty() &&

                    grantResults[0] == PackageManager.PERMISSION_GRANTED)) {

                // Permission is granted. Continue the action or workflow

                // in your app.

            } else {

                // Explain to the user that the feature is unavailable because

                // the features requires a permission that the user has denied.

                // At the same time, respect the user's decision. Don't link to

                // system settings in an effort to convince the user to change

                // their decision.

            }

            return

        }

        // Add other 'when' lines to check for other

        // permissions this app might request.

        else -> {

            // Ignore all other requests.

        }

    }

}

#2. Java
@Override

public void onRequestPermissionsResult(int requestCode, String[] permissions,

        int[] grantResults) {

    switch (requestCode) {

        case PERMISSION_REQUEST_CODE:

            // If request is cancelled, the result arrays are empty.

            if (grantResults.length > 0 &&

                    grantResults[0] == PackageManager.PERMISSION_GRANTED) {

                // Permission is granted. Continue the action or workflow

                // in your app.

            }  else {

                // Explain to the user that the feature is unavailable because

                // the features requires a permission that the user has denied.

                // At the same time, respect the user's decision. Don't link to

                // system settings in an effort to convince the user to change

                // their decision.

            }

            return;

        }

        // Other 'case' lines to check for other

        // permissions this app might request.

    }

}

#8. Menangani penolakan izin

Jika pengguna menolak permintaan izin, aplikasi kamu harus membantu pengguna memahami implikasi atas penolakan izin tersebut.. Secara khusus, aplikasi Yang kamu buat harus membuat pengguna mengetahui fitur yang tidak berfungsi karena tidak adanya izin.. dengan cara sebagai berikut

  1. Arahkan perhatian pengguna : Perjelas bagian tertentu UI aplikasi kamu yang memiliki fungsi terbatas karena aplikasi tidak memiliki izin yang diperlukan.. Beberapa contoh yang dapat kamu lakukan meliputi hal-hal berikut:

    • Menampilkan pesan di tempat hasil atau data fitur akan muncul..
    • Menampilkan tombol lain yang berisi ikon dan warna error..

  2. Jadilah spesifik : Jangan menampilkan pesan umum.. Sebagai gantinya, sebutkan fitur yang tidak tersedia karena di dalam aplikasi kamu tidak memiliki izin yang diperlukan..
  3. Jangan tutupi antarmuka pengguna : Dengan kata lain, jangan tampilkan pesan peringatan layar penuh yang mencegah pengguna terus menggunakan aplikasi kamu tersebut..

Pada saat yang sama, aplikasi yang kamu buat harus mematuhi keputusan pengguna untuk menolak izin.. Mulai Android 11 (API level 30), jika pengguna mengetuk Tolak untuk izin tertentu lebih dari satu kali selama masa aktif aplikasi diinstal di perangkat, pengguna tidak akan lihat dialog izin sistem jika aplikasi kamu meminta izin tersebut lagi..

Tindakan pengguna menyiratkan "jangan tanya lagi".. Pada versi sebelumnya, pengguna akan melihat dialog izin sistem setiap kali aplikasi meminta izin, kecuali pengguna telah terlebih dahulu memilih kotak centang "jangan tanya lagi"..

Dalam situasi tertentu, izin mungkin ditolak secara otomatis, tanpa pengguna melakukan tindakan apa pun.. (Demikian pula, suatu izin mungkin diberikan secara otomatis juga) Penting untuk tidak mengasumsikan apa pun tentang perilaku otomatis..

Setiap aplikasi perlu mengakses fungsionalitas yang memerlukan izin, pastikan aplikasi kamu tersebut masih diberi izin, untuk memberikan pengalaman pengguna terbaik saat meminta izin aplikasi..

#9. Izin 1 kali

Mulai dari Android 11 (API level 30), setiap kali aplikasi meminta izin terkait lokasi, mikrofon, atau kamera, dialog izin sisi pengguna akan berisi opsi yang disebut Hanya kali ini, sebagaimana ditunjukkan dalam Gambar di atas sebagai contoh, Jika pengguna memilih opsi ini dalam dialog, aplikasi akan diberi izin satu kali untuk sementara..

Aplikasi kemudian dapat mengakses data terkait untuk waktu tertentu yang bergantung pada perilaku aplikasi dan tindakan pengguna:

  • Saat aktivitas aplikasi terlihat, aplikasi dapat mengakses data..
  • Jika pengguna mengirim aplikasi ke latar belakang, aplikasi dapat terus mengakses data dalam waktu singkat..
  • Jika meluncurkan layanan latar depan saat aktivitas terlihat, lalu pengguna memindahkan aplikasi ke latar belakang, maka aplikasi dapat terus mengakses data sampai layanan latar depan berhenti..
  • Jika pengguna mencabut izin satu kali, seperti di setelan sistem, aplikasi tidak dapat mengakses data, meskipun kamu meluncurkan layanan latar depan atau pun tidak.. Seperti halnya izin apa pun, jika pengguna mencabut izin satu kali, maka proses aplikasi akan dihentikan..

Saat pengguna membuka aplikasi lagi dan fitur dalam aplikasi tersebut meminta akses ke lokasi, mikrofon, atau kamera, pengguna akan dimintai izin kembali..

Note : Jika aplikasi sudah mengikuti praktik terbaik saat meminta izin runtime, kamu tidak perlu menambahkan atau mengubah apa pun di aplikasi untuk mendukung izin satu kali..

#10. Secara otomatis mereset izin aplikasi yang tidak digunakan

Jika aplikasi yang kamu buat menargetkan Android 11 (API level 30) atau yang lebih baru dan tidak digunakan selama beberapa bulan, sistem akan melindungi data pengguna dengan mereset otomatis izin runtime sensitif yang telah diberikan pengguna pada aplikasi tersebut.. Tindakan ini sama seperti jika pengguna melihat izin dalam setelan sistem dan mengubah tingkat akses aplikasi ke Tolak..

Jika aplikasi sudah mengikuti praktik terbaik untuk meminta izin pada runtime, kamu tidak perlu melakukan perubahan apa pun pada aplikasi..

Note : Sistem hanya mereset izin runtime, yaitu izin yang menampilkan perintah runtime kepada pengguna saat diminta..

#11. Memeriksa status reset otomatis

Untuk memastikan apakah fungsi reset otomatis dinonaktifkan untuk aplikasi, panggil isAutoRevokeWhitelisted(). Jika metode ini menampilkan true, artinya sistem tidak mereset otomatis izin aplikasi..

#12. Meminta pengguna menonaktifkan reset otomatis

Jika diperlukan, kamu dapat meminta pengguna untuk mencegah sistem mereset izin aplikasi.. Cara ini berguna saat pengguna memperkirakan bahwa aplikasi berfungsi terutama di latar belakang, meskipun tanpa interaksi pengguna, seperti dalam kasus penggunaan berikut :
  • Menyediakan keamanan bagi keluarga..
  • Menyinkronkan data..
  • Berkomunikasi dengan perangkat smart..
  • Menyambungkan aplikasi dengan perangkat pendamping..

Untuk mengarahkan pengguna ke halaman aplikasi di setelan sistem, panggil intent yang menyertakan tindakan intent Intent.ACTION_AUTO_REVOKE_PERMISSIONS Dari layar ini, pengguna dapat mencegah sistem mereset izin aplikasi dengan melakukan tindakan berikut:

  • Ketuk Izin, yang memuat layar setelan Izin aplikasi..
  • Nonaktifkan opsi Hapus izin jika aplikasi tidak digunakan, seperti pada Gambar diatas

#13. Menangani reset otomatis pada versi Android yang lebih lama

Reset otomatis izin awalnya diluncurkan untuk perangkat yang menjalankan Android 11 atau yang lebih tinggi.. Pada bulan Desember 2021, fitur ini akan diaktifkan di perangkat yang didukung oleh layanan Google Play yang menjalankan Android 6.0 (API level 23 ) atau yang lebih tinggi..

API yang dijelaskan di bagian ini, saat ini dalam versi beta, memungkinkan aplikasi kamu mendeteksi apakah reset otomatis diaktifkan pada versi Android apa pun.. kamu juga dapat menggunakan API ini untuk meminta pengguna menonaktifkan reset otomatis..

Note : API ini dapat digunakan pada perangkat yang menjalankan versi Android apa pun, tetapi menyediakan informasi untuk aplikasi Anda hanya jika aplikasi menargetkan Android 11 atau yang lebih tinggi..

val future: ListenableFuture =

    PackageManagerCompat.getUnusedAppRestrictionsStatus(context)

future.addListener({ onResult(future.get()) }, ContextCompat.getMainExecutor(context))

fun onResult(appRestrictionsStatus: Int) {

  when (appRestrictionsStatus) {

    // Status could not be fetched. Check logs for details.

    ERROR -> { }

    // Restrictions do not apply to your app on this device.

    FEATURE_NOT_AVAILABLE -> { }

    // Restrictions have been disabled by the user for your app.

    DISABLED -> { }

    // If the user doesn’t start your app for a few months, the system will

    // place restrictions on it. See the API_* constants for details.

    API_30_BACKPORT, API_30, API_31 -> handleRestrictions(appRestrictionsStatus)

  }

}

fun handleRestrictions(appRestrictionsStatus: Int) {

  // If your app works primarily in the background, you can ask the user

  // to disable these restrictions. Check if you have already asked the

  // user to disable these restrictions. If not, you can show a message to

  // the user explaining why permission auto-reset should be disabled.

  // Tell the user that they will now be redirected to a page where they can

  // disable this feature.

  Intent intent = IntentCompat.createManageUnusedAppRestrictionsIntent(context, packageName)

  // Must use startActivityForResult(), not startActivity(), even if

  // you don’t use the result code returned in onActivityResult().

  startActivityForResult(intent, REQUEST_CODE)

}

#14. Meminta untuk menjadi pengendali default, jika diperlukan

Beberapa aplikasi bergantung pada akses ke informasi pengguna sensitif yang terkait dengan log panggilan dan pesan SMS.. Jika ingin meminta izin khusus untuk log panggilan dan pesan SMS serta memublikasikan aplikasi ke Play Store, kamu harus meminta pengguna menetapkan aplikasi kamu sebagai pengendali default untuk fungsi sistem inti sebelum meminta izin runtime ini..

#15. Memberikan semua izin runtime

Untuk otomatis memberikan semua izin runtime saat menginstal aplikasi di emulator atau perangkat uji, gunakan opsi -g untuk perintah adb shell install, seperti contohnya berikut ini..
adb shell install -g PATH_TO_APK_FILE

#16. Mereset otomatis izin aplikasi

Untuk memastikan bahwa sistem mereset izin aplikasi, dengan cara sebagai berikut
  1. Simpan jumlah waktu tunggu default yang dibutuhkan sistem untuk mereset izin aplikasi.. Dengan demikian, kamu dapat memulihkannya setelah pengujian..
    threshold=$(adb shell device_config get permissions \
    
      auto_revoke_unused_threshold_millis2)
  2. Kurangi jumlah waktu tunggu yang dibutuhkan sistem untuk mereset izin.. Pada contoh berikut, sistem dimodifikasi agar mereset izin aplikasi hanya dalam waktu satu detik setelah berhenti berinteraksi dengan aplikasi..
    adb shell device_config put permissions \
    
      auto_revoke_unused_threshold_millis2 1000
  3. Panggil proses reset otomatis secara manual, Pastikan perangkat pengujian telah diaktifkan untuk beberapa lama, kurang lebih 45 detik sebelum menjalankan perintah berikut ini..
    adb shell cmd jobscheduler run -u 0 -f \
    
      com.google.android.permissioncontroller 2
  4. Pastikan bahwa aplikasi yang kamu buat dapat menangani peristiwa reset otomatis..
  5. Pulihkan jumlah waktu tunggu default yang dibutuhkan sistem sebelum mereset otomatis izin aplikasi..
    adb shell device_config put permissions \
    
      auto_revoke_unused_threshold_millis2 $threshold

Akhir Kata

Nah, itulah pembahasan kita kali ini gengs, mengenai Cara Mengatur dan Membuat App Permission di Android dengan Mudah!!, mohon maaf jika penyampainya terlalu belibet? Bertele tele? Atau sulit untuk di pahami, jika masih kurang paham, silahkan baca ulang terus menerus sampai akhirnya paham πŸ˜…

thumbnail Title : Cara Mengatur dan Membuat App Permission di Android dengan Mudah!!
Posted by : ID - IntanDeris
Published : 2021-10-02T14:42:00+07:00
Rating : 90.5%
Reviewer : 9.998 Votes

Post Top Ad

Loading...