How to check permission in fragment How to check permission in fragment android android

How to check permission in fragment


This is how I did, it works for me. Thanks!

For Activity :

ActivityCompat.requestPermissions(this, permissionsList, REQUEST_CODE);

For Fragment :

requestPermissions(permissionsList, REQUEST_CODE);


Fragment has requestPermissions() and onRequestPermissionsResult() methods, use it.

But checkSelfPermission() is from ActivityCompat (not require Activity, only Context).

if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {    requestPermissions( //Method of Fragment        new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},         REQUEST_PERMISSIONS_CODE_WRITE_STORAGE    );} else {    downloadImage();}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {    if (requestCode == REQUEST_PERMISSIONS_CODE_WRITE_STORAGE) {        if (permissions[0].equals(Manifest.permission.WRITE_EXTERNAL_STORAGE)                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {            proceedWithSdCard();        }    }}


I have done following to check a permission inside a fragment.

if (ActivityCompat.checkSelfPermission(getContext(),            android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&            ActivityCompat.checkSelfPermission(getContext(),                    android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {         requestPermissions(getActivity(),                new String[]{android.Manifest.permission.ACCESS_COARSE_LOCATION,                        android.Manifest.permission.ACCESS_FINE_LOCATION},                REQUEST_LOCATION);    } else {        Log.e("DB", "PERMISSION GRANTED");    }