App Permission di Android Sebelum dan Sesudah Marshmallow (API 23)

Bagi pembaca yang punya minat dan hobi serta kemampuan untuk melakukan programming untuk smartphone bersistem operasi Android, tentunya sudah paham betul bahwa setiap aplikasi untuk bisa berjalan di sistem operasi Android harus mendapatkan ijin (app permission).  Pembaca yang budiman, ijinkan saya di tulisan ini tetap menuliskan kata permission daripada menggantinya dengan menuliskan dengan kata ijin. Hal ini saya lakukan untuk menjaga istilah ini tidak keluar dari konteks. Jadi bisa jadi kata permission ini akan saya campur-campur dengan bahasa Indonesia dan tidak lagi menggunakan penulisan miring.

Jika programmernya menggunakan Eclipse atau Android Studio, maka tentunya setup app permission ini bisa dilakukan dengan membuat daftarnya di file manifest.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.app">
    <uses-permission android:name="android.permission.READ_CONTACTS">
    ...
</manifest>

Permission ini nantinya akan muncul sesaat sebelum seorang pengguna melakukan instalasi dari aplikasi. Jika seluruh request permissionnya telah diijinkan, barulah sebuah aplikasi bisa dipasang pada perangkat Android tersebut.

Jika kita lihat lagi secara keseluruhan, urutan versi dari sistem operasi Android sesuai dengan penjelasan dari developer.android.com adalah Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly bean, Kitkat, Lolipop, Marshmallow, Nougat, Oreo, Pie. Nah sejak versi Marshmallow kita tidak lagi bisa memasang permission dengan cara biasa seperti itu.  Android akan meminta permission bukan lagi saat melakukan pembuatannya namun meminta permission justru saat aplikasi tersebut dijalankan, permission on run time. Jadi gimana dong ? ya tidak gimana-gimana lah ..

Runtime Permission, sumber : URL gambar

Semenjak versi Marshmallow, Google di dalam dokumentasinya memperkenalkan 2 jenis permission yaitu Normal Permission dan Runtime Permission. Bedanya apa ya kira-kira ? Ini bisa kita lihat dari membaca namanya saja. Jika Normal Permission berarti cara pemberian permission-nya masih sama dengan cara di versi sebelumnya, yaitu dengan cara menuliskan langsung di Manifest.xml.  Permission jenis ini dianggap sebagai permission yang tidak terlalu riskan atau membahayakan. Berbeda tentunya dengan jenis Runtime Permission.

Berikut adalah contoh Runtime Permission untuk membaca Contact :

public void ijinBacaContact() {
  if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS)!= PackageManager.PERMISSION_GRANTED) {
    if (shouldShowRequestPermissionRationale(Manifest.permission.READ_CONTACTS)) {

    }
    requestPermissions(new String[]{Manifest.permission.READ_CONTACTS},READ_CONTACTS_PERMISSIONS_REQUEST);
  }
}

Untuk bisa melihat permission apa saja yang dibutuhkan dan termasuk kategori mana bisa dibaca daftarnya di dokumentasi Google.

 

Leave a Reply

Your email address will not be published. Required fields are marked *