Permission adaptation tool class, custom package

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

Guess you like

Origin blog.csdn.net/qq_26280383/article/details/114867322