在android上将字符串转换为电子邮件附件

时间:2010-05-27 12:45:56

标签: android email attachment

所以我有som数据,我已经转换为字符串。虽然我已经找到了如何将SD卡上的东西附加到邮件中,但我无法弄清楚如何直接将我的字符串转换为邮件附件而不涉及SD卡。如果它具有重要意义,我已从数据库中读取一些数据,将其转换为csv格式,现在想将其作为csv文件附加。

干杯,

2 个答案:

答案 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));