android 如何动态申请权限

//检查是否有读取SD卡权限
if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
    startLoadInner();  //真正装载插件数据
} else {  ////请求读取SD卡权限
    requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 0x1);
}
 
  
 
  
 
  
/**
 * 响应申请权限时,用户操作后的动作,判断用户是否答应授权
 * @param requestCode
 * @param permissions
 * @param grantResults
 */
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if (requestCode == 0x1) {
        if (permissions != null && permissions.length > 0) {
            for (int i = 0; i < permissions.length; i++) {
                String permisson = permissions[i];
                int grantResult = grantResults[i];
                if (Manifest.permission.READ_EXTERNAL_STORAGE.equals(permisson)) {
                    if (grantResult == PackageManager.PERMISSION_GRANTED) {
                        startLoadInner();
                    } else {
                        Toast.makeText(getActivity(), "没有授权,无法使用", Toast.LENGTH_SHORT).show();
                    }
                }
            }
            for (String permisson : permissions) {

            }
        }
    }
}

你可能感兴趣的:(Android开发知识体系)