0

基于带有“意图”的stackoverflow的代码片段:

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”中打开文件的信息。

但是我的文件应该被下载(除此之外:其中一些文件直接交付给 StartUp)并成为应用程序的一部分(fe 许可协议),并且不能放在下载或媒体等全局目录中:

同样重要的是,它们不应在重新启动时被删除。

  1. 下载到 HomePath 是个好主意吗?文件可能很大——“getFilesDir()”是最好的地方吗?解决方案必须跨平台工作,删除应用程序时应删除目录...
  2. 在打开之前,我必须先将文件复制到 /sdcard(或者“getCacheDir()”是正确的位置)吗?(性能和内存空间)

抱歉,经过大量谷歌搜索后,我对文件的位置和放置位置越来越感到困惑......

4

1 回答 1

1

取决于您如何下载文件。

文件不会在重新启动时被删除,永远。如果有人卸载您的应用程序,您的应用程序文件将被删除,具体取决于它们的位置。

您基本上有两个位置:内部存储和外部存储。如果您在设备的内部存储器中有外部存储,并且设备也有一个 SD 卡插槽,那么外部 SD 卡可以保存媒体文件,但这些与您的应用程序非常独立。

getFilesDir() 描述内部存储的 files/ 子目录;getExternalFilesDir() 与外部存储相同。Environment.getExternalStorageDirectory() 返回外部存储“根”。

性能不像空间那么大。内部存储更加有限。

我不确定您要在代码中做什么。要在设备上查看 PDF,您需要一个可以查看 PDF 的应用程序,并且您需要从任何位置下载 PDF。查看 DownloadManager 从网络下载:它下载到外部存储,但您可以将文件复制到内部存储并在完成后删除外部副本。

我无法帮助您查看 PDF。有几个应用程序可以做到这一点,但它没有内置在 Android 中。

于 2013-09-27T21:22:59.297 回答