2013-01-07 66 views
0

我可以從我的資產文件夾獲取文件中像這樣打開從資產文件夾中的PDF文件

Intent i = new Intent(Intent.ACTION_VIEW); 
     i.setDataAndType(Uri.parse("file:///android_asset/help_doc.pdf"), "application/pdf"); 
     i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     try{ 
      startActivity(i); 
     }catch(ActivityNotFoundException e){ 
      Toast.makeText(this, "No Application Available to View PDF", Toast.LENGTH_SHORT).show(); 
     } 

但是當我選擇的應用程序打開它,它要麼不開,也不給我一個錯誤說error opening file. it does not exist or cannot be read但如果我把它放在我的SD卡上,並點擊它來打開它,我不會得到這個錯誤,所以我怎麼做錯了?

回答

3

file://android_asset只適用於您的應用程序。你告訴這些其他應用程序要做的是讀取其中資產中的help_doc.pdf,並且它們沒有這樣的文件。

你將需要:

  • 將文件複製到外部存儲,或者文件
  • 複製到內部存儲和使用ContentProvider使其可供瀏覽PDF的應用

This sample project演示了後一種方法。

+0

當你這麼說的時候很有意義:) – tyczj