关于android 5.0调用系统相册闪退

来源:互联网 发布:科来mac地址扫描器 编辑:程序博客网 时间:2024/05/01 08:40

今天在做项目的时候发现个问题,用相机上传头像好好的,用相册就会闪退。经过调试发现5.0的和其他版本返回的Uri不一样:

onActivityResult中处理的代码如下:
 Uri uri = data.getData();                if (null != uri) {//                    ContentResolver resolver = getContentResolver();////                    try {//                        Bitmap bm = MediaStore.Images.Media.getBitmap(resolver, uri);//                    } catch (IOException e) {//                        e.printStackTrace();//                    }//                    int sdkVersion = Integer.valueOf(android.os.Build.VERSION.SDK);                    String path = "";                    if (sdkVersion == 21 || sdkVersion == 22){                        path = uri.getPath();//5.0直接返回的是图片路径,5.0以下是一个和数据库有关的索引值,6.0也是一个索引值                    }else {                        String[] proj = {MediaStore.Images.Media.DATA};                        //好像是android多媒体数据库的封装接口,具体的看Android文档                        Cursor cursor = managedQuery(uri, proj, null, null, null);                        //按我个人理解 这个是获得用户选择的图片的索引值                        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);                        //将光标移至开头 ,这个很重要,不小心很容易引起越界                        cursor.moveToFirst();                        //最后根据索引值获取图片路径                        path = cursor.getString(column_index);                    }                        carFile = new File(path);


0 1
原创粉丝点击