首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内部存储与外部存储

内部存储与外部存储
EN

Stack Overflow用户
提问于 2013-06-20 12:14:29
回答 2查看 324关注 0票数 0

我已经阅读了太多关于将文件保存到内部存储和外部存储的理论,以至于我不知道该怎么做。我创建了一个包含droidtext的PDF文件,希望将其作为电子邮件应用程序的附件发送出去。这没问题。然而,我在这方面取得了成功。我只能用外部存储器来做。所以,我创建了一个PDF,用Environment.getExternalStorageDirectory().getAbsolutePath()把它放到外部存储器中。但是,如果没有可用的外部存储,我想将PDF保存在内部存储上。到目前为止,我是这样做的:外部(完美工作):

代码语言:javascript
复制
pdf = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + java.io.File.separator + fileName);
            PdfWriter.getInstance(document, new FileOutputStream(pdf));

内部存储:

代码语言:javascript
复制
pdf = new File(fileName);
            PdfWriter.getInstance(document, openFileOutput(fileName, MODE_PRIVATE));

都有Document document = new Document();。内部内存方法不会产生任何错误,但我不确定文件是否在内部保存。此外,我认为因为它是在内部保存的,邮件应用程序将无法选择它作为附件。我不能测试它,因为我的模拟器没有邮件应用程序。我也不能浏览设备上的内容。我也不拥有没有外部存储的设备...

解决这个问题的最好方法是什么?强制用户拥有外部存储,或者有其他方法来解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2013-06-20 12:46:46

“解决这个问题的最好方法是什么?强制用户使用外部存储,还是有其他方法来解决这个问题?”……我不确定,但我认为您别无选择,只能强制用户使用外部存储才能通过电子邮件发送附件。

票数 1
EN

Stack Overflow用户

发布于 2013-06-22 12:39:09

你不能使用MODE_PRIVATE保存到内部存储,否则电子邮件应用将无法访问该文件。你必须使用MODE_WORLD_READABLE。

要获取存储文件的目录,请使用Context.getFilesDir() (http://developer.android.com/reference/android/content/Context.html#getFilesDir%28%29)

您也可以在模拟器上安装一个电子邮件应用程序来测试这一点。只需下载一个apk并通过adb安装即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17205156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档