簡體   English   中英

Android:可以在不寫入SD的情況下將文件附加到電子郵件中嗎?

[英]Android: possible to attach a file to email without writing to SD?

我的應用程序將數據本地存儲在本機SQLite數據庫中,我希望允許用戶通過向自己發送.csv文件來導出這些數據。 為了做到這一點,我從數據庫生成.csv並將其寫入SD卡,然后將其附加到電子郵件中:

StringBuilder csv = generateFile();
writeFile(csv.toString(),"file.csv");
Intent email = new Intent(android.content.Intent.ACTION_SEND);
email.setType("application/octet-stream");
email.putExtra(android.content.Intent.EXTRA_STREAM, Uri.parse("file://sdcard/file.csv"));

哪一切都很棒。 但我想知道的是,是否有可能首先跳過寫入SD的步驟,並直接附加數據。

即使有可能,我也建議不要這樣做。

用於啟動活動的Intents將持續(可能)相當長的時間 - 只要有問題的活動是“活着的”並且可以想象地返回(例如,回到堆棧,因為用戶拿了電話在撰寫電子郵件時打電話,然后通過短信聊半小時)。

此外,作為其中的一部分, Intents會在進程之間進行復制。 例如,電子郵件客戶端的過程與您的應用程序不同。

出於這兩個原因,您需要保持Intents較小。 Uri對內容的唯一替代方案是將內容直接放在額外的內容中......而且這個CSV文件可能會變得有點大。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM