GULANGGULING.COM

Membuat Dialog Request Permission pada Android 6.0 Marshmallow

requesting-permissions-android-6-marshmallow

GULANGGULING.COM | TUTORIAL ANDROID – Perlu diketahui bahwa pada Android versi 6.0 atau Marshmallow, Google membuat perubahan pada pemberian ijin setiap aplikasi.

Pada Android versi 6.0 tersebut setiap user dapat memberikan ijin pada setiap aplikasi secara manual. Jika Anda pengguna Android Marshmallow, maka Anda akan melihat pengaturan permission untuk setiap aplikasi yang Anda install.

Akibat perubahan ini, ada beberapa permission yang tidak secara otomatis akan jalan ketika Anda develop suatu aplikasi. Contohnya ketika Anda menggunakan permission untuk membaca account, maka aplikasi Anda tidak akan dapat menggunakan fungsi membaca account sampai user tersebut memberikan ijin secara manual.

Jika kode atau fungsi untuk menggunakan permission tersebut tidak di handle secara programming, maka dapat menyebabkan pesan error force close. Untuk menyelesaikan masalah ini Anda perlu membuat handle error atau membuat Dialog untuk melakukan request permission ini. Nah mari kita buat sebuah aplikasi untuk menampilkan Dialog untuk meminta permission.

Dalam kasus ini, saya menggunakan permission membaca account user atau GET_ACCOUNTS. Saya membuat fungsi untuk melakukan pengecekan keberadaan ijin permisi dari user, jika belum ada maka akan memunculkan dialog untuk meminta request.

Dibawah ini fungsi untuk melakukan check terhadap status permission yang kita request, Anda tinggal memanggilnya dari method onCreate pada activity atau tinggal disesuaikan saja pemanggilannya:

public void getPermissions() {
    /* Check and Request permission */
    if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(MainActivity.this,
                new String[]{Manifest.permission.GET_ACCOUNTS},
                MY_PERMISSIONS_REQUEST_GET_ACCOUNTS);
    }
}

Untuk menghandle hasil dari dialog tersebut, tambahkan fungsi @Override dibawah ini :

@Override
public void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) {
    switch (requestCode) {
        case MY_PERMISSIONS_REQUEST_GET_ACCOUNTS: {
            // If request is cancelled, the result arrays are empty.
            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

                // permission was granted, yay! Do the
                // contacts-related task you need to do.

            } else {

                // permission denied, boo! Disable the
                // functionality that depends on this permission..
                Toast.makeText(MainActivity.this, "Permission denied to get Account", Toast.LENGTH_SHORT).show();

            }
            return;
        }

        // other 'case' lines to check for other
        // permissions this app might request
    }
}

Dengan fungsi diatas, maka aplikasi kita akan menampilkan dialog request sebuah permission yang akan kita gunakan, seperti pada gambar.

Tutorial Android Membuat Dialog Permission pada Android Marshmallow

Full source code Activity :

package androlite.requestpermissions;

import android.Manifest;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
/*
* Create by Ardhitya Wiedha Irawan
* 2016
* aiueo.web.id
* gulangguling.com
* */
public class MainActivity extends AppCompatActivity {
    private static final int MY_PERMISSIONS_REQUEST_GET_ACCOUNTS = 1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getPermissions();
    }

    public void getPermissions() {
        /* Check and Request permission */
        if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(MainActivity.this,
                    new String[]{Manifest.permission.GET_ACCOUNTS},
                    MY_PERMISSIONS_REQUEST_GET_ACCOUNTS);
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) {
        switch (requestCode) {
            case MY_PERMISSIONS_REQUEST_GET_ACCOUNTS: {
                // If request is cancelled, the result arrays are empty.
                if (grantResults.length > 0
                        && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

                    // permission was granted, yay! Do the
                    // contacts-related task you need to do.

                } else {

                    // permission denied, boo! Disable the
                    // functionality that depends on this permission..
                    Toast.makeText(MainActivity.this, "Permission denied to get Account", Toast.LENGTH_SHORT).show();

                }
                return;
            }

            // other 'case' lines to check for other
            // permissions this app might request
        }
    }


}

Sekian tutorial Android kali ini, semoga bermanfaat untuk saya dan untuk Anda yang membutuhkannya. Jangan lupa baca koleksi tutorial Android lainnya pada halaman ini.

Bye!

Download Full Source Code From Github

 

 

Artikel Tutorial Android :