2011-02-25 117 views
0

我將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並運行該程序,但仍然出現相同的錯誤。

回答

0

您可以將它們放在res/raw文件夾中,然後創建resource URIs指向它們。他們的形式是android.resource://com.example.myapp/raw/my_resource。我不確定的是,其他應用程序(如PDF閱讀器)是否可以打開它們。試試看!

+0

感謝您的解決方案。我嘗試使用URI,它引發ActivityNotFoundException。我編輯了我原來的帖子並添加了上面的代碼塊。你可以看看它,並儘可能幫助我。謝謝。 – NavinC 2011-02-25 16:43:16

+0

嘗試添加CATEGORY_DEFAULT,或刪除標誌也許?您的意圖看起來不錯,因此Adobe可能無法讀取您的資源。 – 2011-02-26 06:03:04

相關問題