本博客原地址:
用小米4调用系统相册选择照片时,如果云相册功能开启的话.云相册中的图片也会显示在选择列表中.经过测试,选择到云相册中的图片的话,uri的scheme是file,而不再试content.本文支持云相册的方法就是通过判断scheme来实现的.
调用系统相册
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, yourRequestCode);
重写Activity中onActivityResult方法实现回调
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); //获取图片路径 if (requestCode == yourRequestCode && resultCode == Activity.RESULT_OK && data != null) { Uri localUri = data.getData(); String scheme = localUri.getScheme(); String imagePath = ""; if("content".equals(scheme)){ String[] filePathColumns = {MediaStore.Images.Media.DATA}; Cursor c = getContentResolver().query(localUri, filePathColumns, null, null, null); c.moveToFirst(); int columnIndex = c.getColumnIndex(filePathColumns[0]); imagePath = c.getString(columnIndex); }else if("file".equals(scheme)){//小米4选择云相册中的图片是根据此方法获得路径 imagePath = localUri.getPath(); } showImage(imagePath);//拿到图片路径后处理 c.close(); } }