package com.hdl.photovoltaic.utils; import android.app.Activity; import android.content.pm.PackageManager; import android.os.Build; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class PermissionUtils { /** * 获取权限成功 */ public static final int STATUS_SUCCESS = 1; /** * 只有activity才可以申请 * * @param activity - * @param strings - */ public static void askPermission(Activity activity, String[] strings) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { List newList = new ArrayList<>(); for (String permission : strings) { boolean flag = checkPermission(activity, permission); if (!flag) { newList.add(permission); } } if (newList.size() > 0) { ActivityCompat.requestPermissions(activity, newList.toArray(new String[0]), STATUS_SUCCESS); } } } /** * 检查一个权限 * * @param activity - * @param permission - * @return - */ public static boolean checkPermission(Activity activity, String permission) { //first we need check this Drive has? CAMERA Permission return ContextCompat.checkSelfPermission(activity, permission) == PackageManager.PERMISSION_GRANTED; } /** * 检查多个权限 * * @param activity - * @param strings - * @return - */ public static String[] checkPermission(Activity activity, String[] strings) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { List newList = new ArrayList<>(); for (String permission : strings) { boolean flag = checkPermission(activity, permission); if (!flag) { newList.add(permission); } } return newList.toArray(new String[0]); } return new String[]{}; } }