我们可以使用ContentResolver来获取媒体文件的真实名称。以下是一个示例代码,演示如何解决此问题。
public String getRealNameFromURI(Uri contentUri, Context context) {
String fileName = null;
String[] projection = {MediaStore.Images.Media.DISPLAY_NAME};
Cursor cursor = context.getContentResolver().query(contentUri, projection, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
int columnNameIndex = cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME);
fileName = cursor.getString(columnNameIndex);
cursor.close();
}
return fileName;
}
请注意,此示例代码仅适用于媒体文件,如果您要使用其他类型的文件,则需要相应更改projection参数中的列名。