我將PDF文件放置在我的android應用程序的assets
文件夾中。我能夠使用AssetManager
來閱讀文件名。我需要在屏幕上顯示它們,我可以做到這一點。但我需要使用pdfviewer打開它們。安卓應用程序資產文件夾中的pdf文件
要在每個項目上寫上onclick()
的意圖,我需要傳遞PDF文件的URI。並且使用AssetManager
我無法獲取文件的URI。有更好的辦法可以處理這件事嗎?
即使我們能夠檢索URI,PDF閱讀器是否可以讀取assets文件夾中的PDF文件?
UPDATE:
基於下面的建議,我寫下面的代碼
try {
Uri path = Uri.parse("android.resource://com.csg.android.myproject/raw/csgsample") ;
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try {
startActivity(intent);
}
catch (ActivityNotFoundException e){
Toast.makeText(FirstTab.this, "NO Viewer", Toast.LENGTH_SHORT).show();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
它將引發有以下例外消息的ActivityNotFoundException
:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=android.resource://com.csg.android.myproject/assets/pdf/csgsample typ=application/pdf flg=0x4000000 }
我使用查詢的設備PackageManager
我發現安裝了Adobe閱讀器。但我不知道它爲什麼拋出這個錯誤。我也嘗試將其放在assets
文件夾中,然後相應地更改URI並運行該程序,但仍然出現相同的錯誤。
感謝您的解決方案。我嘗試使用URI,它引發ActivityNotFoundException。我編輯了我原來的帖子並添加了上面的代碼塊。你可以看看它,並儘可能幫助我。謝謝。 – NavinC 2011-02-25 16:43:16
嘗試添加CATEGORY_DEFAULT,或刪除標誌也許?您的意圖看起來不錯,因此Adobe可能無法讀取您的資源。 – 2011-02-26 06:03:04