2012-04-25 9 views
0

は、私は私のコードはここにあるデバイスの内部メモリからpdfファイルを読み込むしようとしています:内部メモリからPDFファイルを読み込む際にエラーが発生しましたか?

   File pdfFile;  

      pdfFile=new File("data/data/com.myapp.main/app_c"+md+"/c"+md+".pdf"); 


       if(pdfFile.exists()) 
       { 
        try{ 
         FileOutputStream fileOutput = openFileOutput(pdfFile.toString(), Context.MODE_WORLD_READABLE); 
        } 
        catch (Exception e) { 
         // TODO: handle exception 
         e.printStackTrace(); 
        } 
        Uri path = Uri.fromFile(pdfFile); 
       Intent pdfIntent = new Intent(Intent.ACTION_VIEW); 
       pdfIntent.setDataAndType(path, "application/pdf"); 
       pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

       try 
       { 
        startActivity(pdfIntent); 
       } 
       catch(ActivityNotFoundException e) 
       { 
        Toast.makeText(ChTable.this, "No Application available to view pdf", Toast.LENGTH_LONG).show(); 

       } 

しかし、PDFリーダーは、エラーがサポートされ-ORない-file私がいることを確認している.Butファイルが見つかりません示していファイルは、この場所にあります。私はまた、ファイルへのアクセス許可を変更しましたが、それでも同じ結果です。誰かが私の問題を発見して解決するのを助けますか?

答えて

0

あなたはPDFファイルからデータを読み取るためにPDFBoxライブラリを使用することができます - このパスが正しい

http://pdfbox.apache.org/

0
data/data/com.myapp.main/app_c"+md+"/c"+md+".pdf" 

ですか?

私は次のようなパスを推測しています。

data/data/com/myapp/main/app_c"+md+"/c"+md+".pdf" 
+0

パスは正解です! – Navdroid

0

あなたはかなりのパスがどうなるかと想定よりもアプリケーションのファイルのディレクトリを取得するためのAPIのいずれかを使用する必要があります。

実際に問題が発生する可能性が高いのは、作成したファイルが所有アプリケーションにはおそらくプライベートなため、PDFリーダーアプリにアクセスできない可能性があります。

これを解決するには、ファイルモードを世界的に読める形式に変更するか、内部メモリではなく外部記憶域(つまり「sdcard」)にファイルを保存することが一般的です。権限の概念があります。デバイスが外部ストレージを持つことは保証されておらず、存在する場合でも特定の時点でアクセス可能であることは覚えておく必要があります。

関連する問題