2013-09-27 71 views
0

意圖setdataandtype SD卡gethomepath

F_Pdf_File:= GetHomePath + PathDelim + '_files' + PathDelim + 'lic.pdf'; 
Intent := TJIntent.Create; 
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); 
Intent.setDataAndType(StrToJURI(F_Pdf_File), StringToJString('application/pdf')); 
SharedActivity.startActivity(Intent); 

PDF文件無法打開,而不是在應用程序而不是在SolidExplorer。 在其他示例中,我閱讀了關於在「sdcard/download」中打開文件的示例。

但我的文件應該被下載(旁:有的直接deliverded在啓動),並應用(FE許可協議)的一部分,必須不能放在像下載或媒體的全球目錄:

也重要的是,它們不能在重新啓動時被刪除。

  1. 下載到HomePath是不是一個好主意?這些文件可能很大 - 是「getFilesDir()」最好的地方嗎?解決方案必須跨平臺工作,應刪除當應用程序刪除dir ...
  2. 我必須首先複製文件到/ sdcard(或「getCacheDir()」在正確的地方)才能打開? (性能和MEM空間)

對不起,很多谷歌上搜索後,我越來越感到困惑的位置,並在那裏把我的文件...

回答

1

取決於你如何下載文件。

重新啓動時不會刪除文件。如果有人卸載您的應用程序,您應用程序的文件將根據其位置而被刪除。

您基本上有兩個位置:內部存儲和外部存儲。如果您在設備的內部存儲器中有外部存儲設備,該設備也有一個SD卡插槽,則外部SD卡可以保存媒體文件,但這些與您的應用程序非常分離。

getFilesDir()描述內部存儲的文件/子目錄; getExternalFilesDir()與外部存儲相同。 Environment.getExternalStorageDirectory()返回外部存儲「root」。

性能不像空間那麼大。內部存儲更加有限。

我不確定你想要在你的代碼中做什麼。要在設備上查看PDF,您需要一個可以查看PDF的應用程序,並且您需要從任何地方下載PDF。查看DownloadManager以從網上下載:它下載到外部存儲器,但您可以將文件複製到內部存儲並在完成後刪除外部副本。

我無法幫助您查看PDF。幾個應用程序可以實現這一點,但它不是內置於Android中的。

+0

「內部存儲器更有限」 - 在Android 1.x/2.x上。在大多數Android 3.0+設備上,內部和外部存儲共享一個分區,因此它們具有相同的空間。 – CommonsWare

+0

f.e.在unix應用程序和數據是splittet(/ bin/myapp,/ usr/ /lic.pdf;由安裝程序刪除);在贏我會做一個文件夾下面(/ /myapp.exe,///lic.pdf) - 但在Android中,我無法從我的「GetHomePath」的子路徑加載PDF ... – user2807653