所以我有som数据,我已经转换为字符串。虽然我已经找到了如何将SD卡上的东西附加到邮件中,但我无法弄清楚如何直接将我的字符串转换为邮件附件而不涉及SD卡。如果它具有重要意义,我已从数据库中读取一些数据,将其转换为csv格式,现在想将其作为csv文件附加。
干杯,
答案 0 :(得分:0)
我有同样的问题,我尝试发送文件而不将其保存在文件系统中。 我尝试添加一个额外的数据,如下所示:
String fileContent = "File Content";
emailIntent.putExtra(Intent.EXTRA_STREAM,
Uri.parse("data://text/plain;base64,"+
_utils.Strings.base64_encode(fileContent)));
我使用自己的类来创建base64内容,但我认为它也适用于: http://developer.android.com/reference/android/util/Base64.html
在这种情况下取得了成功,在我的电子邮件客户端中看到了“atached”文件。
但有两个问题: 1.我不知道如何为这个文件定义一个名字 2.当我尝试发送文件时出现错误,并且我在另一端收到没有附件的邮件。
更新2015-05-13: 邮件应用程序显示我的附件的以下错误:
E/Gmail(11511): java.io.FileNotFoundException: No content provider: data://text/plain;base64,
我认为这意味着我的手机一直缺少可以处理数据uris的内容提供商。 所以我认为我们必须创建ContentProvider(参见:http://developer.android.com/guide/topics/providers/content-provider-creating.html)
并实施
openOutputStream(android.net.Uri)
返回数据uri的内容。
答案 1 :(得分:-1)
使用文件API创建一个临时文件,然后您可以继续将其作为额外添加到电子邮件意图中
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(csvFile));