2015-08-16 2 views
2

Я работал с this PDF library, пытаясь получить путь к тому, где находится файл PDF, но я продолжаю получать сообщение об ошибке. Что мне здесь не хватает?AndroidPdfViewer - Не удается открыть документ PDF из папки «Активы»

Проверка моего Android Монитор устройства, я могу видеть мою БД в этой папке базы данных, которые также проживают в папке активов, но я не могу найти все файлы PDF? пожалуйста, где они? проверьте изображение ниже

enter image description here

Спасибо друзья, это была моя ошибка, я только что обнаружил, что мне нужно прочитать файл из активов в каталоге файлов перед его открытием. Работает прямо сейчас, используя код ниже

` частных недействительных CopyReadAssets (String Filename) { AssetManager assetManager = this.getAssets();

InputStream in = null; 
    OutputStream out = null; 
    File file = new File(this.getFilesDir(), fileName); 

    try 
    { 
     in = assetManager.open(fileName); 
     out = this.openFileOutput(file.getName(), Context.MODE_WORLD_READABLE); 

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

    Intent intent = new Intent(android.content.Intent.ACTION_VIEW); 
    File dir_file = new File(file.getAbsolutePath()); 

    //<-- Get FileType 
    String mimeType = Utility.getFileMineType(dir_file); 

    intent.setDataAndType(Uri.fromFile(file), mimeType); //"file://" + getFilesDir() + "/abc.pdf"),"application/pdf" 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

    if(mimeType.equals("application/pdf")){ 

     Log.e(TAG, Uri.fromFile(file).toString()+" -- "+dir_file); 

     //mPDFView = new StudentPdfViewer(); 
     // mPDFView.display("Symfony.pdf", false); 

     //handle it as activity 
     Intent intent1 = new Intent(this, PdfViewer.class); 
     intent1.putExtra(Config.COURSE_FILE, fileName); 
     //intent1.putExtra(SqliteDb.COURSE_NAME, listCategory.get(0).getCategory_name()); 
     //intent1.putExtras(mBundle); 
     startActivity(intent1); 

    }else{ 

     try { 
      startActivity(intent); 
     } catch (ActivityNotFoundException e) { 

      Toast.makeText(this, "Unable to load selected Course Material, Please check the Study Studio installation guide to install the required dependency softwares", Toast.LENGTH_LONG).show(); 
     } 

    } 


} 

`

ответ

2

Там нет«папки активов»на устройстве, и нет«путь к месту, где файл PDF находиться»на устройстве.

Содержимое папки assets/ в вашем проекте приложения хранится в APK. Вы можете получить доступ к активам через AssetManager, и вы получите один из них, позвонив по телефону getAssets() на любом удобном Context, например Activity.

+0

Проблема заключается в том, что мне нужно, чтобы путь uri к файлу находился в папке с ресурсами при запуске программы, но приложение не смогло найти какой-либо файл по этому пути, я проверяю свой монитор устройств Android, чтобы узнать, есть ли какой-либо из файл, но не файл в этом каталоге. это то, что я использовал 'getFilesDir(). getAbsolutePath() +"/"+" sample.pdf "Мне ничего не хватает здесь? –

+0

Я обновляю свой вопрос, любезно проверяю! –

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