Example Multi Check Permissions. Request Permissions at same time, I recommend to use this step on your First Activity, now i use it on PermissionActivity :
Add maven jitpack.io and dependencies in build.gradle (Project) :
// build.gradle project
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
// build.gradle app/module
dependencies {
...
implementation 'com.github.gzeinnumer:EasyExternalDirectoryAndroid:2.2.0'
}Manifest. add permission ke file manifest. I recommend to add requestLegacyExternalStorage=true if you using Android 10.
<manifest >
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:requestLegacyExternalStorage="true">
</application>
</manifest>Add array permission that you need :
First Activity. put request permission at your first activity, now i use it on PermissionActivity.
public class PermissionActivity extends AppCompatActivity {
PermissionEnum[] permissions = new PermissionEnum[]{
PermissionEnum.WRITE_EXTERNAL_STORAGE,
PermissionEnum.READ_EXTERNAL_STORAGE
};
...
}Add function checkPermissions to check permission on app, if permission not granted than popup will show and ask to Allow. Please click allow :
public class PermissionActivity extends AppCompatActivity {
...
//TYPE 1
private void checkPermissions() {
boolean isAllGranted = FGPermission.getPermissionResult(this, permissions);
if (isAllGranted){
onSuccessCheckPermitions();
} else {
Toast.makeText(this, "Permission Required", Toast.LENGTH_SHORT).show();
}
}
//TYPE 2 if you want to know which permission that Granted or Denied. use this
private void checkPermissions2() {
FGPermission.getPermissionResult(this, permissions, new FGPermission.CallBackPermission() {
@Override
public void result(boolean isAllGranted, List<PermissionsResult> listPermissions) {
Log.d(TAG, "result: "+isAllGranted);
for (int i = 0; i < listPermissions.size(); i++) {
Log.d(TAG, "result: "+listPermissions.toString());
}
if (isAllGranted){
onSuccessCheckPermitions();
} else {
Toast.makeText(getApplicationContext(), "Permission Required", Toast.LENGTH_SHORT).show();
}
}
});
}
...
}You can check all permition are granted or not with function onRequestPermissionsResult, if granted you can run your code :
public class PermissionActivity extends AppCompatActivity {
...
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
PermissionManager.handleResult(this, requestCode, permissions, grantResults);
checkPermissions();
}
...
}Add action to function onSuccessCheckPermitions :
public class PermissionActivity extends AppCompatActivity {
...
private void onSuccessCheckPermitions() {
startActivity(new Intent(getApplicationContext(), MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK));
}
}notes.
- I always use this method to get permition for all Libray that i made.
- You can modif body of function
onSuccessCheckPermitions.
Add function checkPermissions in onCreate to check permission everytime app running :
public class PermissionActivity extends AppCompatActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
FGPermission.checkPermissions(this, permissions);
checkPermissions();
}
...
}Fullcode will be like this :
public class PermissionActivity extends AppCompatActivity {
private static final String TAG = "PermissionActivity";
PermissionEnum[] permissions = new PermissionEnum[]{
PermissionEnum.WRITE_EXTERNAL_STORAGE,
PermissionEnum.READ_EXTERNAL_STORAGE
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_permission);
FGPermission.checkPermissions(this, permissions);
checkPermissions();
}
//TYPE 1
private void checkPermissions() {
boolean isAllGranted = FGPermission.getPermissionResult(this, permissions);
if (isAllGranted){
onSuccessCheckPermitions();
} else {
Toast.makeText(this, "Permission Required", Toast.LENGTH_SHORT).show();
}
}
//TYPE 2
private void checkPermissions2() {
FGPermission.getPermissionResult(this, permissions, new FGPermission.CallBackPermission() {
@Override
public void result(boolean isAllGranted, List<PermissionsResult> list) {
Log.d(TAG, "result: "+isAllGranted);
for (int i = 0; i < list.size(); i++) {
Log.d(TAG, "result: "+list.toString());
}
if (isAllGranted){
onSuccessCheckPermitions();
} else {
Toast.makeText(getApplicationContext(), "Permission Required", Toast.LENGTH_SHORT).show();
}
}
});
}
private void onSuccessCheckPermitions() {
Log.d(TAG, "onSuccessCheckPermitions: S");
startActivity(new Intent(getApplicationContext(), PermissionActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK));
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
PermissionManager.handleResult(this, requestCode, permissions, grantResults);
checkPermissions();
}
}Preview :
![]() |
![]() |
![]() |
|---|---|---|
| Request Permission 1 | Request Permission 2 | If all permission granted Toast AllGranted will show |
Copyright 2020 M. Fadli Zein



