2010-05-27 55 views
4

因此,我已將som數據轉換爲字符串。雖然我發現如何將SD卡上的東西附加到郵件中,但我無法弄清楚如何直接將字符串轉換爲郵件附件,而不涉及SD卡。如果它具有重要意義,我已經從數據庫中讀取了一些數據,將其轉換爲csv格式,現在想將它作爲csv文件附加。將字符串轉換爲android上的電子郵件附件

乾杯,

+0

我不確定如果我理解你的正確,但基本上你想附加一個cvs文件(存儲在哪裏?)到一個電子郵件? – RoflcoptrException 2010-05-27 13:31:36

+0

我以編程方式創建csv文件。它只創建郵件,然後可以處理。感覺沒有必要要求用戶爲此擁有SD卡。 – pgsandstrom 2010-05-27 14:40:44

+0

我在Android 4.x上遇到同樣的問題。如果你找到了解決方案,我很感興趣。 – Teocali 2013-06-11 10:54:26

回答

-1

使用文件API來創建一個臨時文件,然後你可以繼續前進,把它作爲額外的電子郵件意圖這樣

emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(csvFile)); 
+0

我曾嘗試創建一個文件並將其放入應用程序目錄,但gmail拒絕接受該目錄中的文件。最有可能防止某些重要應用程序文件可能作爲電子郵件附件被盜的安全問題。 – pgsandstrom 2010-05-28 09:37:59

+0

我使用createTempFile(字符串前綴,字符串後綴)保存文件,它對我來說非常好用 – the100rabh 2010-05-29 11:30:45

+0

Hi @ the100rabh,你能舉一個例子說明你是如何做到這一點的?謝謝! – Zarah 2010-10-29 08:25:59

0

我有同樣的問題,我嘗試發送文件而不將其保存在文件系統中。 我嘗試添加一個數據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

這是一個在這種情況下,我看到了電子郵件客戶端中的「文件」。

但也有2個問題:1。 不`噸我知道如何爲這個文件中定義的名稱 2.錯誤occours當我嘗試發送的文件,我在另一端得到一個郵件附件不。

UPDATE 2015年5月13日: 我attachent以下錯誤的郵件應用顯示:

E/Gmail(11511): java.io.FileNotFoundException: No content provider: data://text/plain;base64, 

我認爲這意味着我的手機yust缺少能夠處理數據URI的內容提供商。 所以我認爲,我們要創建的ContentProvider(參見:http://developer.android.com/guide/topics/providers/content-provider-creating.html

和實施

openOutputStream(android.net.Uri) 

返回數據URI的內容。

相關問題