我可以从我的私人文件夹中读取内容吗?

时间:2011-05-20 11:43:48

标签: android

我制作了一个程序,我在data/data/mypackagename/目录中创建了一个文件。从那里我尝试将文件附加到电子邮件并发送。

发生的问题是在将电子邮件作为附件发送时出现文件,但收到邮件时从未收到附件。

我相信当URI在代码中解析文件时会出现一些问题:

emailintent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+outFileName));

我的问题是我可以访问手机中私人文件夹的数据,还是应该总是把它放在SD卡内。

如果我把我正在制作的文件放在SD卡中,附件问题是否会消失?

2 个答案:

答案 0 :(得分:1)

  

我的问题是我可以访问手机中根文件夹的数据,还是应该总是把它放在SD卡中。

您的应用程序可以访问应用程序本地数据存储中的数据 - getFilesDir()返回的目录。

但是,您没有编写电子邮件程序。电子邮件程序是由其他人编写的,您正在其他应用程序中启动活动。电子邮件程序无权读取 应用程序的数据存储中的文件。

您需要像其他人建议的那样将文件保留在外部存储上,或者使用以openFileOutput()作为参数的MODE_WORLD_READABLE版本,因此您有一个其他文件应用程序(如电子邮件程序)可以阅读。

  

outFileName如下/data/data/com.company.NauticDates/attachment.ics

我当然希望不是。那应该是/data/data/com.company.NauticDates/files/attachment.ics。请不要在应用程序中硬连线。请使用适当的方法获取目录供您使用,例如getFilesDir()openFileOutput()将文件放入应用程序本地文件存储区。

答案 1 :(得分:0)

您可以将文件放在assets文件夹中。你可以使用以下代码阅读文件

InputStream myInput =  context.getAssets().open("filename");

由于 迪帕克