我已经阅读了很多关于将文件保存到内部存储和外部存储的理论,以至于我不知道该怎么做。我创建了一个带有 droidtext 的 PDF 文件,我想在所选的电子邮件应用程序中将其作为附件通过电子邮件发送。这没有问题。我成功了,但是......我只能用外部存储来做到这一点。所以,我创建了一个 PDF,将它放在外部存储中Environment.getExternalStorageDirectory().getAbsolutePath()
。但是,如果没有可用的外部存储,我想将 PDF 保存在内部存储上。到目前为止,我是这样做的:外部(完美运行):
pdf = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + java.io.File.separator + fileName);
PdfWriter.getInstance(document, new FileOutputStream(pdf));
内部存储器:
pdf = new File(fileName);
PdfWriter.getInstance(document, openFileOutput(fileName, MODE_PRIVATE));
两者都有Document document = new Document();
。内部存储器方法没有任何错误,但我不确定文件是否在内部保存。另外,我认为因为它是在内部保存的,邮件应用程序将无法选择它作为附件。我无法对此进行测试,因为我的模拟器没有邮件应用程序。我也无法浏览设备上的内容。我也没有没有外部存储的设备...
解决这个问题的最佳方法是什么?强制用户使用外部存储还是有其他方法可以解决这个问题?