Я использую этот код для получения имени файла из URI изображения.
/**
*
* @param image
* @return
*/
private String getImageFilename(Uri image) {
if (image != null) {
String path = getRealPathFromURI(this.context(), image);
if (path != null) {
return path.substring(path.lastIndexOf("/") + 1);
} else {
return null;
}
} else {
return null;
}
}
/**
* Gets the file path from a given URI.
* @param context
* @param contentUri
* @return
*/
private String getRealPathFromURI(Context context, Uri contentUri) {
Cursor cursor = null;
try {
if (contentUri != null) {
String[] tempArray = {MediaStore.Images.Media.DATA};
cursor = context.getContentResolver().query(contentUri, tempArray, null, null, null);
if (cursor != null) {
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} else {
return null;
}
} else {
return null;
}
} catch (Exception e) {
printLogMessage(e);
return null;
} finally {
if (cursor != null) {
cursor.close();
}
}
}
Пожалуйста, дайте мне знать, если это не сработает в вашем случае.