首页 > 系统 > Android > 正文

Android中URI的转换关于file和content相互转换工具类

2019-11-09 15:58:09
字体:
来源:转载
供稿:网友
调用时:File imageFile = getFileByUri(Uri);
工具类:
public File getFileByUri(Uri uri) {        String path = null;        if ("file".equals(uri.getScheme())) {            path = uri.getEncodedPath();            if (path != null) {                path = Uri.decode(path);                ContentResolver cr = this.getContentResolver();                StringBuffer buff = new StringBuffer();                buff.append("(").append( MediaStore.Images.ImageColumns.DATA).append("=").append("'" + path + "'").append(")");                Cursor cur = cr.query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] {  MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATA }, buff.toString(), null, null);                int index = 0;                int dataIdx = 0;                for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) {                    index = cur.getColumnIndex( MediaStore.Images.ImageColumns._ID);                    index = cur.getInt(index);                    dataIdx = cur.getColumnIndex( MediaStore.Images.ImageColumns.DATA);                    path = cur.getString(dataIdx);                }                cur.close();                if (index == 0) {                } else {                    Uri u = Uri.parse("content://media/external/images/media/" + index);                    System.out.PRintln("temp uri is :" + u);                }            }            if (path != null) {                return new File(path);            }        } else if ("content".equals(uri.getScheme())) {            // 4.2.2以后            String[] proj = { MediaStore.Images.Media.DATA };            Cursor cursor = this.getContentResolver().query(uri, proj, null, null, null);            if (cursor.moveToFirst()) {                int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);                path = cursor.getString(columnIndex);            }            cursor.close();            return new File(path);        } else {//            Log.i(TAG, "Uri Scheme:" + uri.getScheme());        }        return null;    }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表