2011-11-11 21 views
2

私のアプリケーションでは資産リソースからファイルを取得しており、そこからpdfファイルを開いています。 私はこのコードを使用しています:アンドロイドの資産からPDFファイルを取得する方法は?

Uri path = Uri.parse("file:///android_asset/WindsorONE_Mobile_PK.pdf"); 

      Intent intentPDF = new Intent(Intent.ACTION_VIEW);      
      intentPDF.setDataAndType(path, "application/pdf");      
      intentPDF.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);      
      try {       
       startActivity(intentPDF);      
      }      
      catch (ActivityNotFoundException e) {       
       Toast.makeText(ListSample.this,        
        "No Application Available to View PDF",        
        Toast.LENGTH_SHORT).show();      

      } 

をしかし、私はそのコードを実行している間。私は「ファイルパスが有効ではありません」というダイアログにエラーがあります どこが間違っていますか?
それを助けてください。

ありがとうございました。

答えて

4

問題は、アプリケーションからサードパーティアプリケーションにリソースパスを渡していることですが、そのパスはプライベートリソースのためアプリケーション内からのみ有効です。

この唯一の解決策は、PDFファイルをアセットから外部ストレージにコピーし、そのファイル(外部ストレージ内のファイル)へのパスをサードパーティのアプリに渡すことです。そうすればうまくいくはずです。

+0

ok Letn私はそれを試してみてください。 –

+0

+1私のアプリケーションは、他のアプリケーションがそのファイルを開くことを許可しません。 – Dharmendra

+0

さて、私はそのファイルをsdcardにコピーしてから使用しても問題ありません。ありがとう。 –

1

アセットのアイテムにアクセスするには、アセットマネージャを使用する必要があります。 Link is here

+0

ありがとうございます返信ありがとうございますが私のコードで私はどのように私はUriのパスを変更する必要がありますか? –

+0

P1。この解決策を確認してください。 http://stackoverflow.com/questions/4820816/how-to-get-uri-from-an-asset-file – Vinay

関連する問題