private void handleImageOnKitKat(Intent data){
String imagePath=null;
Uri uri=data.getData();
if(DocumentsContract.isDocumentUri(this,uri)){
//如果是document类型的uri,则通过document Id处理
String docId=DocumentsContract.getDocumentId(uri);
if(“com.android.providers.media.documents”.equals(uri.getAuthority())){
String id=docId.split("?[1];
String selection=MediaStore.Images.Media._ID+"="+id;
imagePath=getImagePath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,selection);
}else if("com.android.providers.downloads.documents".equals(uri.getAuthority())){
Uri contentUri=ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"),Long.valueOf(docId));
imagePath=getImagePath(contentUri,null);
}
}else if("content".equalsIgnoreCase(uri.getScheme())){
//如果是content类型的uri,则按普通方式处理
imagePath=getImagePath(uri,null);
}else if("file".equalsIgnoreCase(uri.getScheme())){
//如果是file类型的uri,直接获取图片就行
imagePath=uri.getPath();
}
displayImage(imagePath);
}
在其中一行代码中:
docId.split(":")疏忽写为了 docId.split("1")
低级错误,不可再犯