2011-12-16 128 views
5

我想打開一個pdf存儲在移動內部存儲器... 我想通過文件路徑的Uri ..但它保留我看這個錯誤 「文件路徑無效」 但我敢肯定,我把正確的道路..閱讀pdf存儲在內部存儲器(文件路徑是無效的)

targetFile=new File("/data/data/package Name/app_mydir/test.pdf"); 

      } 

     Intent intent; 
     intent = new Intent(Intent.ACTION_VIEW); 
     intent.setDataAndType(Uri.fromFile(targetFile), "application/pdf"); 


       startActivity(intent); 
+0

你的文件如何保存?一般來說,數據文件最終在您的應用程序目錄中名爲「文件」的文件夾內,而不是根目錄。 – FoamyGuy 2011-12-16 19:54:30

+0

我使用這個 directory = getBaseContext()。getDir(「mydir」,Context.MODE_PRIVATE); \t \t \t} \t \t File file1 = new File(directory,PdfName); – Reham 2011-12-16 20:02:56

回答

0

檢查的

targetFile.exists輸出();

如果這返回true,那麼你很好走,否則你的路徑有問題。

8

應用程序的內部存儲目錄中的文件默認爲您的應用程序專用。這意味着沒有PDF閱讀器應用程序可以閱讀該文件(因爲它不會與您的應用程序pid運行 - 沒有讀取權限)

您必須使用Context.MODE_WORLD_READABLE標誌將該PDF保存爲其他應用的顯式閱讀權限 。請看data storage documentation如何做到這一點。

還可以使用Context.openFileOutput()Context.openFileInput()閱讀並在內部目錄寫文件(如上面的文檔中提到)。不要像這樣硬編碼路徑,他們可能會改變。