private void startAlbum(){ final String[] PERMISSIONS_STORAGE = { "android.permission.READ_EXTERNAL_STORAGE", "android.permission.WRITE_EXTERNAL_STORAGE" }; //检查权限 //检查版本是否大于M if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { //进入到这里代表没有权限. if(ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.WRITE_EXTERNAL_STORAGE)){ //已经禁止提示了 AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setCancelable(false) .setMessage("应用需要存储权限来让您选择手机中的相片!") .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this,"点击了取消按钮",Toast.LENGTH_LONG).show(); } }) .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { ActivityCompat.requestPermissions(MainActivity.this, PERMISSIONS_STORAGE, REQUEST_CODE); } }).show(); }else{ ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE, REQUEST_CODE); } } else { callAlbum(); } } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode){ case REQUEST_CODE: if(grantResults.length >0 &&grantResults[0]==PackageManager.PERMISSION_GRANTED){ //用户同意授权 callAlbum(); }else{ //用户拒绝授权 } break; } } private void callAlbum(){ // 相册选取上传 //Intent intent = new Intent(Intent.ACTION_PICK, null); Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null); intent.setType("image/*"); startActivityForResult(intent, FROM_ALBUM); }