最近需要用到调用手机相册这门技术,就想到郭霖大神写的书里有,我也刚好敲过,就直接调用书里的代码,结果发现了一个隐藏的bug,就是调用手机相册时,如果你选择的时recent文件里的图片,那没问题,但是如果你选择download文件里的图片,会出现一个数值转换异常的情况,然后整个app强行退出,经过我的人工debug(写log)发现,问题出现在函数handleImageOnKitKat里,先看书上的源代码:
private void handleImageOnKitKat(Intent data){
String imagePath=null;
Uri uri=data.getData();
if(DocumentsContract.isDocumentUri(this,uri)){
//如果是Document类型的uri,则通过document id处理,如果你选择了download文件里的图片,则docId的值就变成了raw:+图片路径,我是通过写log发现的
String docId=DocumentsContract.getDocumentId(uri);
if("com.android.providers.media.documents".equals(uri.getAuthority())){
String id=docId.split(":")[1];//解析出数字格式的id
String selection=MediaStore.Images.Media._ID+"="+id;
imagePath=getImagePath(MediaStore.Images.Med