2016-06-29 4 views
3

Я загрузил файл (133465.pdf) с помощью диспетчера загрузки и теперь он хранится в папке «Загрузка» мобильного телефона (внутреннее хранилище).Откройте загруженный файл (pdf) из папки «Загрузка» в «ВНУТРЕННЕМ ХРАНЕНИИ»

Как я могу попытаться загрузить загруженный pdf-файл из папки «Загрузки»?

Я использую приведенный ниже код, чтобы попытаться извлечь pdf-файл из папки для скачивания, но я получаю сообщение об ошибке на тосте, говоря: «Невозможно отобразить PDF (133465.pdf не открывается)».

String file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() + File.separator + "133465.pdf"; 
       Log.i("Fragmentadapter1", file); 
       File videoFile2Play = new File(file); 
       Intent i = new Intent(); 
       i.setAction(android.content.Intent.ACTION_VIEW); 
       i.setDataAndType(Uri.fromFile(videoFile2Play), "application/pdf"); 
       imageContext.startActivity(i); 

Я не знаю, использую ли я подходящее расположение файла для доступа к файлу.

Любая помощь или предложение будут оценены.

ответ

3

Если вы работаете в Lollopop и ниже: вам не нужно запрашивать у пользователя разрешение на время выполнения. Разрешения манифеста будут выполнены.

Если вы работаете в Marshmellow и выше: вы должны задать пользователю permission во время выполнения и действовать в соответствии с выходом пользователей.

Помните: вам все равно нужно предоставить разрешения на манифест.

Чтобы скачать PDF на папку пользователей Загрузки:

DownloadManager downloadmanager; 
    Environment 
      .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) 
      .mkdirs(); 

    downloadmanager = (DownloadManager) getApplication().getSystemService(Context.DOWNLOAD_SERVICE); 
    String url = hardcode + bb ; 
    Uri uri = Uri.parse(url); 
    DownloadManager.Request request = new DownloadManager.Request(uri) 
      .setTitle(bb) 
      .setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, 
        bb) 
      .setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); 
    Log.i("Download1", String.valueOf(request)); 
    downloadmanager.enqueue(request); 

Reference

Для просмотра загруженных PDF из папки Downloads устройства Users:

File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() + File.separator + 
      "YOUR FILE NAME"); 
    Uri path = Uri.fromFile(file); 
    Log.i("Fragment2", String.valueOf(path)); 
    Intent pdfOpenintent = new Intent(Intent.ACTION_VIEW); 
    pdfOpenintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    pdfOpenintent.setDataAndType(path, "application/pdf"); 
    try { 
     this.startActivity(pdfOpenintent); 
    } catch (ActivityNotFoundException e) { 

    } 

Примечание: убедитесь, что вы получили разрешение перед загрузкой Просмотр файла PDF для Marshmellow и UP.