Example Multi Check Permissions. Request Permissions at same time, I recommend to use this step on your First Activity, now i use it on MainActivity :
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 MainActivity.
public class MainActivity extends AppCompatActivity {
String[] permissions = new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_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 MainActivity extends AppCompatActivity {
...
int MULTIPLE_PERMISSIONS = 1;
private boolean checkPermissions() {
int result;
List<String> listPermissionsNeeded = new ArrayList<>();
for (String p : permissions) {
result = ContextCompat.checkSelfPermission(getApplicationContext(), p);
if (result != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(p);
}
}
if (!listPermissionsNeeded.isEmpty()) {
ActivityCompat.requestPermissions(this, listPermissionsNeeded.toArray(new String[0]), MULTIPLE_PERMISSIONS);
return false;
}
return true;
}
...
}You can check all permition are granted or not with function onRequestPermissionsResult, if granted you can run your code :
public class MainActivity extends AppCompatActivity {
...
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == MULTIPLE_PERMISSIONS) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//Do Someting ...
//aksi setelah semua permission diberikan
} else {
StringBuilder perStr = new StringBuilder();
for (String per : permissions) {
perStr.append("\n").append(per);
}
}
}
}
...
}Make and call function onSuccessCheckPermitions to run your code :
public class MainActivity extends AppCompatActivity {
...
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == MULTIPLE_PERMISSIONS) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//tambahkan ini
onSuccessCheckPermitions();
} else {
StringBuilder perStr = new StringBuilder();
for (String per : permissions) {
perStr.append("\n").append(per);
}
}
}
}
...
}Add action to function onSuccessCheckPermitions :
public class MainActivity extends AppCompatActivity {
...
private void onSuccessCheckPermitions() {
Toast.makeText(this, "All Granted", Toast.LENGTH_SHORT).show();
//letakan action kamu disini
}
}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 MainActivity extends AppCompatActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
if (checkPermissions()) {
Toast.makeText(this, "Izin sudah diberikan", Toast.LENGTH_SHORT).show();
onSuccessCheckPermitions();
} else {
Toast.makeText(this, "Berikan izin untuk melanjutkan ke tahap berikutnya", Toast.LENGTH_SHORT).show();
}
}
...
}Fullcode will be like this :
public class MainActivity extends AppCompatActivity {
String[] permissions = new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (checkPermissions()) {
Toast.makeText(this, "Izin sudah diberikan", Toast.LENGTH_SHORT).show();
onSuccessCheckPermitions();
} else {
Toast.makeText(this, "Berikan izin untuk melanjutkan ke tahap berikutnya", Toast.LENGTH_SHORT).show();
}
}
int MULTIPLE_PERMISSIONS = 1;
private boolean checkPermissions() {
int result;
List<String> listPermissionsNeeded = new ArrayList<>();
for (String p : permissions) {
result = ContextCompat.checkSelfPermission(getApplicationContext(), p);
if (result != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(p);
}
}
if (!listPermissionsNeeded.isEmpty()) {
ActivityCompat.requestPermissions(this, listPermissionsNeeded.toArray(new String[0]), MULTIPLE_PERMISSIONS);
return false;
}
return true;
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == MULTIPLE_PERMISSIONS) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
onSuccessCheckPermitions();
} else {
StringBuilder perStr = new StringBuilder();
for (String per : permissions) {
perStr.append("\n").append(per);
}
}
}
}
private void onSuccessCheckPermitions() {
Toast.makeText(this, "All Granted", Toast.LENGTH_SHORT).show();
//letakan action kamu disini
}
}Preview :
![]() |
![]() |
![]() |
|---|---|---|
| Request Permission 1 | Request Permission 2 | If all permission granted Toast AllGranted will show |
Copyright 2020 M. Fadli Zein



