
我正在使用此代码从URI获取真实路径.它正在努力
棉花糖但不在奥利奥:
private String getPathNew(Activity activity, Uri uri) { if (isDownloadsdocument(uri)) { final String ID = documentsContract.getdocumentID(uri); final Uri contentUri = ContentUris.withAppendedID(Uri.parse("content://downloads/public_downloads"), Long.valueOf(ID)); return getDataColumn(activity, contentUri, null, null); } return null;}public static String getDataColumn(Context context, Uri uri, String selection, String[] selectionArgs) { Cursor cursor = null; final String column = "_data"; final String[] projection = {column}; try { cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs, null); if (cursor != null && cursor.movetoFirst()) { final int column_index = cursor.getColumnIndexOrThrow(column); return cursor.getString(column_index); } } finally { if (cursor != null) cursor.close(); } return null;}我究竟做错了什么?
解决方法:
public static String getRealPathFromURI(Context context, Uri contentUri) { String[] proj = {MediaStore.Images.Media.DATA}; Cursor cursor = context.getContentResolver().query(contentUri, proj, null, null, null); if (cursor != null) { int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.movetoFirst(); return cursor.getString(column_index); } return null;} 总结 以上是内存溢出为你收集整理的Android Oreo如何从uri获得真正的路径?全部内容,希望文章能够帮你解决Android Oreo如何从uri获得真正的路径?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)