package com.sky.qcloud.tools; import android.Manifest; import android.app.Activity; import android.content.pm.PackageManager; import android.os.Build; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import java.util.ArrayList; /** * Description: This class forPermission application when the SDK version is greater than 26 * Author: Created by lixby on 18-4-28. */ public class PermissionHelper { private static final int MY_PERMISSIONS_REQUEST_CODE=10; private String[] permissions=new String[]{Manifest.permission.CAMERA}; private ArrayList<String> pms=new ArrayList<>(); private static PermissionHelper permissionHelper; public static PermissionHelper instance(){ if(permissionHelper==null){ permissionHelper=new PermissionHelper(); } return permissionHelper; } public void checkPermissions(Activity cext){ if(Build.VERSION.SDK_INT<Build.VERSION_CODES.M){ return; } pms.clear(); for (int i=0;i<permissions.length;i++){ if(ContextCompat.checkSelfPermission(cext,permissions[i])!= PackageManager.PERMISSION_GRANTED){ pms.add(permissions[i]); } } if(pms.size()>0){ String[] ps=pms.toArray(new String[pms.size()]); ActivityCompat.requestPermissions(cext,ps,MY_PERMISSIONS_REQUEST_CODE); } } public void onRequestPermissionsResult(Activity cext,int requestCode, String[] permissions, int[] grantResults) { if (requestCode == MY_PERMISSIONS_REQUEST_CODE){ for (int i = 0; i < grantResults.length; i++) { if (grantResults[i] != PackageManager.PERMISSION_GRANTED) { //判断是否勾选禁止后不再询问 boolean showRequestPermission = ActivityCompat.shouldShowRequestPermissionRationale(cext, permissions[i]); } } } } }
Android sdk 26以上权限申请
最新推荐文章于 2024-08-13 08:02:54 发布