App Permission with Dexter Library
Android Runtime Permission With Dexter Library |
Implementing Android runtime permissions intoduces in Mashmallow is a hard process and developer needs to write lot of code just to get a single permission.
User has to allow or deny any permission at runtime.
We are going to Use Dexter library to simplify the process of adding the runtime permissions .
We are going to Use Dexter library to simplify the process of adding the runtime permissions .
With Dexter Library , we can have get "Single" runtime permission as well as "Multiple" runtime permission with just a
few lines of code .
few lines of code .
You can Download the Project from Github link :
DOWNLOAD PROJECT
or
https://github.com/jaspreet1990/runtime-permission-dexter-library
Below the are steps to implement Dexter Library
Step 1 :
Add Library in Gradle :
dependencies {
implementation 'com.karumi:dexter:4.2.0' // Dexter runtime permissions
}
Step 1 a :
Add code on button click to use Dexter Library for single Permission:
Dexter.withActivity(this)
.withPermission(Manifest.permission.CAMERA)
.withListener(new PermissionListener() {
@Override public void onPermissionGranted(PermissionGrantedResponse response)
{
Toast.makeText(MainActivity.this,"Permession Granted with Dexter",Toast.LENGTH_SHORT).show();
}
@Override public void onPermissionDenied(PermissionDeniedResponse response)
{
Toast.makeText(MainActivity.this,"Permession Deny",Toast.LENGTH_SHORT).show();
if(response.isPermanentlyDenied()){
// navigate to app setting
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.fromParts("package", getPackageName(), null));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
@Override public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token)
{
token.continuePermissionRequest();
}
}).check();
Step 1 b :
Add code on button click to use Dexter Library for Multiple Permission:
Dexter.withActivity(this)
.withPermissions(
Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
.withListener(new MultiplePermissionsListener() {
@Override public void onPermissionsChecked(MultiplePermissionsReport report) {
if (report.areAllPermissionsGranted()) {
// do you work now
}
for (int i=0;i<report.getDeniedPermissionResponses().size();i++) {
Log.d("dennial permision res", report.getDeniedPermissionResponses().get(i).getPermissionName());
}
// check for permanent denial of any permission
if (report.isAnyPermissionPermanentlyDenied()) {
// permission is denied permenantly, navigate user to app settings
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.fromParts("package", getPackageName(), null));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
@Override public void onPermissionRationaleShouldBeShown(List<PermissionRequest> permissions, PermissionToken token)
{
token.continuePermissionRequest();
}
}).check();
Download the Full Code from here
or
https://github.com/jaspreet1990/runtime-permission-dexter-library
0 comments:
Post a Comment