安卓[android] 通过Uri获取File文件
2015-05-13 15:22
489 查看
/** * 通过Uri返回File文件 * 注意:通过相机的是类似content://media/external/images/media/97596 * 通过相册选择的:file:///storage/sdcard0/DCIM/Camera/IMG_20150423_161955.jpg * 通过查询获取实际的地址 * @param uri * @return */ 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 = activity.getContentResolver(); StringBuffer buff = new StringBuffer(); buff.append("(").append(Images.ImageColumns.DATA).append("=").append("'" + path + "'").append(")"); Cursor cur = cr.query(Images.Media.EXTERNAL_CONTENT_URI, new String[] { Images.ImageColumns._ID, Images.ImageColumns.DATA }, buff.toString(), null, null); int index = 0; int dataIdx = 0; for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) { index = cur.getColumnIndex(Images.ImageColumns._ID); index = cur.getInt(index); dataIdx = cur.getColumnIndex(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 = activity.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; }
相关文章推荐
- Android通过Uri获取文件的路径的方法
- Android选择文件及通过Uri获取文件路径
- Android——通过Uri获取文件的路径
- android 通过URI获取文件名称Title
- Android 通过Uri获取文件路径
- Android如何通过URI获取文件路径示例代码
- android 通过uri获取bitmap图片并压缩
- Android 通过URI获取Bitmap
- Android 7.0 行为变更 通过FileProvider在应用间共享文件吧
- Android中获取App的File路径,以及拷贝Asses目录下的文件
- 详解android 通过uri获取bitmap图片并压缩
- [置顶] Android 7.0获取文件Uri适配
- 14、Android开发基础之通过系统提供的方法获取到保存文件的路径
- [置顶] android 平台下通过GDAL创建SHP(ShapeFile)文件至SD卡
- 通过URI获取的文件路径为null的解决方法
- android/安卓获取视频文件缩略图及时长
- android 通过uri获取bitmap图片并压缩
- Android Intent通过setDataAndType(uri, "type")打开文件方式
- Android 7.0 行为变更 通过FileProvider在应用间共享文件
- android 通过uri获取bitmap图片并压缩