1

У меня есть список файлов PDF для размещения в папке asstes, мое требование - читать файлы из asstes и отображать их внутри списка. если щелкнуть по каждому элементу списка необходим прочитать соответствующие PDF-файлЧтение файлов PDF из папки asstes

Я следовал за этот блог http://androidcodeexamples.blogspot.in/2013/03/how-to-read-pdf-files-in-android.html

Но здесь они дали чтение PDF-файлы из внешнего каталога хранения

Я хочу реализовать те же файлы для чтения из Asstes Folder

Может ли кто-нибудь помочь Как реализовать тот же пример чтения файлов из asstes?

+0

проверить это [ссылка] [1] ссылка может помочь вам [1]: http://stackoverflow.com/questions/11820142/how-to-pass-a-file-path-which -is-in-assets-folder-to-filestring-path – Rama

+0

привет, просто посмотри ответ, который я написал, надеюсь, что это поможет тебе! –

+0

Проверьте мой ответ. @String – GrIsHu

ответ

2

Вы не можете открыть pdf-файл непосредственно из папки с ресурсами. Сначала вам нужно записать файл на SD-карту из папки с ресурсами, а затем прочитать его с SD-карты.

Попробуйте следующий код, чтобы скопировать и прочитать файл из папки активов:

//method to write the PDFs file to sd card 
private void PDFFileCopyandReadAssets() 
    { 
     AssetManager assetManager = getAssets(); 

     InputStream in = null; 
     OutputStream out = null; 
     File file = new File(getFilesDir(), "test.pdf"); 
     try 
     { 
      in = assetManager.open("test.pdf"); 
      out = openFileOutput(file.getName(), Context.MODE_WORLD_READABLE); 

      readFile(in, out); 
      in.close(); 
      in = null; 
      out.flush(); 
      out.close(); 
      out = null; 
     } catch (Exception e) 
     { 
      Log.e("tag", e.getMessage()); 
     } 

     Intent intent = new Intent(Intent.ACTION_VIEW); 
     intent.setDataAndType(
       Uri.parse("file://" + getFilesDir() + "/test.pdf"), 
       "application/pdf"); 

     startActivity(intent); 
    } 

    private void readFile(InputStream in, OutputStream out) throws IOException 
    { 
     byte[] buffer = new byte[1024]; 
     int read; 
     while ((read = in.read(buffer)) != -1) 
     { 
      out.write(buffer, 0, read); 
     } 
    } 

Открыть файл из SDCard, как показано ниже:

File file = new File("/sdcard/test.pdf");   
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.fromFile(file),"application/pdf"); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 

обеспечивают также разрешение на запись в ваш внешний хранения в вашем манифесте.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
+0

@GrlsHu вопрос о файле pdf – Nambi

+0

@GrlsHu что такое имя каталога на SD-карте, файл создан из Assets? – String

+0

Вы можете указать свое имя каталога sd-карты, в которой вы хотите создать и сохранить файл pdf. – GrIsHu

Смежные вопросы