Подтвердить что ты не робот

Как получить путь к файлу из URI?

Пожалуйста, найдите мой код ниже. Мне нужно получить путь к файлу pdf-документа, выбранного пользователем из SDcard. Проблема в том, что URI.getPath() возвращает:

/file:///mnt/sdcard/my%20Report.pdf/my Report.pdf

Правильный путь:

/sdcard/my Report.pdf

Обратите внимание, что, который я искал в стеке, но нашел пример получения filePath изображения или видео, нет примера того, как получить путь к файлу в случае PDF > ?

Мой код, а не весь код, но только часть pdf:

 public void openPDF(View v)
 {
     Intent intent = new Intent();
     //intent.setType("pdf/*");
     intent.setType("application/pdf");
     intent.setAction(Intent.ACTION_GET_CONTENT);
     startActivityForResult(Intent.createChooser(intent, "Select Pdf"), SELECT_PDF_DIALOG);
 }
 public void onActivityResult(int requestCode, int resultCode, Intent result) 
 {
     if (resultCode == RESULT_OK) 
     {
         if (requestCode == SELECT_PDF_DIALOG) 
         {
             Uri data = result.getData();
             if(data.getLastPathSegment().endsWith("pdf"))
             {
                String pdfPath = data.getPath();
             } 
             else 
             {
                 CommonMethods.ShowMessageBox(CraneTrackActivity.this, "Invalid file type");   
             }               
          }
      }
 }

Может кто-нибудь, пожалуйста, помогите мне, как получить правильный путь от URI?

4b9b3361

Ответ 1

File myFile = new File(uri.toString());
myFile.getAbsolutePath()

должен вернуть u правильный путь

ИЗМЕНИТЬ

Поскольку @Tron предположил, что рабочий код

File myFile = new File(uri.getPath());
myFile.getAbsolutePath()

Ответ 2

Вот ответ на вопрос  здесь

На самом деле мы должны получить его из совместного приложения ContentProvider для камеры