android通过uri得到文件对象,安卓[android] 通过Uri获取File文件

时间:2025-03-09 08:24:15

/**

* 通过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(())) {

path = ();

if (path != null) {

path = (path);

ContentResolver cr = ();

StringBuffer buff = new StringBuffer();

("(").append().append("=").append("'" + path + "'").append(")");

Cursor cur = (.EXTERNAL_CONTENT_URI, new String[] { ._ID, }, (), null, null);

int index = 0;

int dataIdx = 0;

for ((); !(); ()) {

index = (._ID);

index = (index);

dataIdx = ();

path = (dataIdx);

}

();

if (index == 0) {

} else {

Uri u = ("content://media/external/images/media/" + index);

("temp uri is :" + u);

}

}

if (path != null) {

return new File(path);

}

} else if ("content".equals(())) {

// 4.2.2以后

String[] proj = { };

Cursor cursor = ().query(uri, proj, null, null, null);

if (()) {

int columnIndex = ();

path = (columnIndex);

}

();

return new File(path);

} else {

(TAG, "Uri Scheme:" + ());

}

return null;

}