0
我正在開發一款運行實驗的Android應用程序,並從Android設備獲取一些統計信息。獲得結果後,應用程序嘗試通過電子郵件發送它們(使用Intent.ACTION_SEND)。但是,我一直在處理原始郵件的大小問題,所以郵件在使用GZip發送之前被壓縮。我不想創建要附加到郵件的文件,就像我使用putExtra(Intent.EXTRA_STREAM,...)時所做的一樣。如果我可以修改郵件標題,這將是非常簡單的,但似乎沒有辦法做到這一點。我也嘗試在消息前放置標題信息,但附件未被GMail客戶端識別 - Android將整個消息嵌入到另一個具有文本/純文本類型的附件內。有沒有辦法用附件發送消息而不生成文件?在Android上發送帶附件的電子郵件
private void sendResults(String title) {
String body;
try {
body = "Content-type: multipart/mixed; boundary=\"anexo\"\n\n";
body += "--anexo\n";
body += "Content-type: application/gzip; name=\"results.gz\" \n";
body += "Content-disposition: attachment; filename=\"results.gz\" \n";
body += "Content-Transfer-Encoding: base64 \n";
body += Base64.encodeToString(ZipUtil.compress(results).getBytes(), Base64.DEFAULT) + "\n";
body += "--anexo\n";
body += "Content-type: text/plain; charset=us-ascii \n";
body += "Results.\n";
body += "--anexo--\n\n";
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, body);
String[] to = { "[email protected]" };
sendIntent.putExtra(Intent.EXTRA_EMAIL, to);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "[dsp-benchmarking] "+title);
sendIntent.setType("message/rfc822");
startActivity(Intent.createChooser(sendIntent, "Send results"));
} catch (IOException e) {
Log.e("SEND_RESULTS", "Error: " + e.getMessage());
}
}