我有一些数据已经转换成字符串。虽然我已经找到了如何将SD卡上的文件附加到邮件中,但我无法想出如何直接将我的字符串转换为邮件附件而不涉及SD卡。如果这很重要的话,我已经从数据库读取了一些数据,将其转换为CSV格式,现在希望将其作为CSV文件附加。
谢谢!
我有一些数据已经转换成字符串。虽然我已经找到了如何将SD卡上的文件附加到邮件中,但我无法想出如何直接将我的字符串转换为邮件附件而不涉及SD卡。如果这很重要的话,我已经从数据库读取了一些数据,将其转换为CSV格式,现在希望将其作为CSV文件附加。
谢谢!
我有同样的问题,我尝试发送一个文件而不将其保存在文件系统中。 我尝试添加一个数据URI流额外参数,像这样:
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
在那种情况下它是成功的,在我的邮件客户端中看到了附加的“文件”。
但有两个问题: 1. 我不知道如何为这个文件定义一个名称 2. 当我尝试发送文件时发生错误,我收到的邮件没有附件。
更新2015-05-13: 我的附件引起了邮件应用程序显示以下错误:
E/Gmail(11511): java.io.FileNotFoundException: No content provider: data://text/plain;base64,
我认为这意味着我的手机缺少一个可以处理数据URI的内容提供者。
所以我觉得我们需要创建一个ContentProvider(请参见:http://developer.android.com/guide/topics/providers/content-provider-creating.html)
并实现一个
openOutputStream(android.net.Uri)
返回数据 URI 的内容。
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(csvFile));