Ошибка файла не найдена после выбора файла в android

Я хочу открыть .pdf-файл в моем приложении Android. Теперь я могу просматривать PDF-файл, и после просмотра файла я получаю сообщение « Не найденный файл», когда я проверяю файл на наличие или нет. Теперь, после выбора файла, мой выбранный файл Uri data.getData() подобен

content://com.android.externalstorage.documents/document/6333-6131:SHIDHIN.pdf

И путь, когда я разбираюсь с использованием data.getData().getPath().toString() подобен

/document/6333-6131:SHIDHIN.pdf Вот мой код. Пожалуйста помогите.

 // To Browse the file Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("application/pdf"); startActivityForResult(intent, PICK_FILE_REQUEST); 

После выбора файла

 //onActivityResult public void onActivityResult(final int requestCode, int resultCode, Intent data) { try { switch (requestCode) { case PICK_FILE_REQUEST: if (resultCode == RESULT_OK) { try { Uri fileUri = data.getData(); String path = fileUri.getPath().toString(); File f = new File(path); if (f.exists()) { System.out.println("\n**** Uri :> "+fileUri.toString()); System.out.println("\n**** Path :> "+path.toString()); final Intent intent = new Intent(MainActivity.this, ViewPdf.class); intent.putExtra(PdfViewerActivity.EXTRA_PDFFILENAME, path); startActivity(intent); } else { System.out.println("\n**** File Not Exist :> "+path); } } catch (Exception e) { ShowDialog_Ok("Error", "Cannot Open File"); } } break; } } catch (Exception e) { } } 

Это не ответ, а обходной путь.

 File file = new File("some_temp_path"); # you can also use app's internal cache to store the file FileOutputStream fos = new FileOutputStream(file); InputStream is = context.getContentResolver().openInputStream(uri); byte[] buffer = new byte[1024]; int len = 0; try { len = is.read(buffer); while (len != -1) { fos.write(buffer, 0, len); len = is.read(buffer); } fos.close(); } catch (IOException e) { e.printStackTrace(); } 

Передать абсолютный путь этого файла к вашей деятельности.

 button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { File pdfFile = new File(Environment.getExternalStorageDirectory(), "Case Study.pdf"); try { if (pdfFile.exists()) { Uri path = Uri.fromFile(pdfFile); Intent objIntent = new Intent(Intent.ACTION_VIEW); objIntent.setDataAndType(path, "application/pdf"); objIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(objIntent); } else { Toast.makeText(MainActivity.this, "File NotFound", Toast.LENGTH_SHORT).show(); } } catch (ActivityNotFoundException e) { Toast.makeText(MainActivity.this, "No Viewer Application Found", Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); } } }); 
Intereting Posts
Как изменить цвет ручек EditText? Unsolved: запись звука на Android с использованием примера из Google Портирование C ++ lib / app на android Как отображать двойные кавычки (") Символ в текстовом виде Android Android Studio 2.2 Предварительный просмотр всех размеров экрана отсутствует Менеджер учетных записей: приложение Android не отображается в разделе «Учетные записи» настроек, Получить элемент андроида: versionName в коде "Существует проблема разбора пакета" Как установить приложение для Android в каталоге system / app без внедренного устройства, чтобы пользователь не смог удалить это приложение Какая часть стека программного обеспечения Android обрабатывает команды через разъем для наушников? (Например, отвечать на вызовы с гарнитурой) Почему MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI не дает точного «исполнителя альбома»? SimpleDateFormat (шаблон String, локаль Locale), например, Locale.US для дат ASCII Сломанная труба при попытке загрузить большое обновление файла 2 Android RecyclerView + ActiveAndroid Как отображать растровое изображение в Android