从android studio中activityResult()上的uri获取文件名

从android studio中activityResult()上的uri获取文件名,android,android-intent,Android,Android Intent,我需要DICOM图像的文件路径中的文件名,该图像是从gallery下载并选择的,要加载到android studio的imageView中。您可以使用以下代码从onActivityResult的uri中获取文件名 Uri uri= data.getData(); File file= new File(uri.getPath()); file.getName(); 那么问题出在哪里?@Piyush我得到下载图像的uri为==>content://com.android.providers.do

我需要DICOM图像的文件路径中的文件名,该图像是从gallery下载并选择的,要加载到android studio的imageView中。

您可以使用以下代码从onActivityResult的uri中获取文件名

Uri uri= data.getData();
File file= new File(uri.getPath());
file.getName();

那么问题出在哪里?@Piyush我得到下载图像的uri为==>content://com.android.providers.downloads.documents/document/22 ,因此找不到异常文件,因为22是文件名,所以找不到真正的路径?@Piyush不,先生,找不到真正的图像名。我得到22作为图像名,显示未找到异常文件。首先,您是否检查是否已授予运行时权限?此代码对于gallery中的图像是正确的(未下载)。activityResult上下载的图像的uri不同content://com.android.providers.downloads.documents/document/22
 @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == Activity.RESULT_OK) {
        if (requestCode == PICK_REQUEST) {
            if(data != null){
               String name = new File(data.getData().getPath()).getName();
            }
        }
    }
}