package com...; import android.app.Activity; import android.content.pm.PackageManager; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import java.util.ArrayList ; /** * Permission request */ public class PermissionUtils { /** * Request permission * * @param context * @param permissions * @return If you need to apply, return true, no need to apply, return false */ public static boolean isNeedToRequestPermission( Activity context, String... permissions) { if (Integer.valueOf(android.os.Build.VERSION.SDK)> 22) { ArrayList needPermission = new ArrayList(); for (String per: permissions) { if (ContextCompat.checkSelfPermission(context, per) != PackageManager.PERMISSION_GRANTED) { needPermission.add(per); } } if (needPermission.size() > 0) { String[] permission = new String[needPermission.size()]; needPermission.toArray(permission); ActivityCompat.requestPermissions(context, permission, 1); return true; } else { return false; } } else { return false; } } }
Calling method:
private void checkPermission() { if (!PermissionUtils.isNeedToRequestPermission(this, //location information Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, //Storage read permission Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXT, // phone status Manifest.permission.READ_PHONE_STATE, // camera permission Manifest.permission.CAMERA, // microphone permissions Manifest.permission.RECORD_AUDIO )) { startSplashActivity (); // preloaded data } } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == 1) { for (int i = 0; i < grantResults.length; i++) { if (grantResults[i] < 0) { new CommonDialog(PermissionActivity.this, R.style.dialog, "授权拒绝,请重新登入并授予权限!", new CommonDialog.OnCloseListener() { @Override public void onClick(CommonDialog dialog, boolean confirm) { if (confirm) { finish(); } } }).showCommonDialog(); return; } } startSplashActivity(); } }
Note: CommonDialog is a pop-up window View of a custom package
Download link: https://download.csdn.net/download/qq_26280383/15833884