本文轉(zhuǎn)載:http://www.jb51.net/article/38158.htm 侵刪
在Android中調(diào)用其他程序進(jìn)行相關(guān)處理漏峰,幾乎都是使用的Intent糠悼,所以,Email也不例外,所謂的調(diào)用Email浅乔,只是說(shuō)Email可以接收Intent并做這些事情
我們都知道倔喂,在Android中調(diào)用其他程序進(jìn)行相關(guān)處理,幾乎都是使用的Intent靖苇,所以席噩,Email也不例外。 在Android中贤壁,調(diào)用Email有三種類型的Intent: Intent.ACTION_SENDTO 無(wú)附件的發(fā)送 Intent.ACTION_SEND 帶附件的發(fā)送 Intent.ACTION_SEND_MULTIPLE 帶有多附件的發(fā)送 當(dāng)然悼枢,所謂的調(diào)用Email,只是說(shuō)Email可以接收Intent并做這些事情脾拆,可能也有其他的應(yīng)用程序?qū)崿F(xiàn)了相關(guān)功能馒索,所以在執(zhí)行的時(shí)候,會(huì)出現(xiàn)選擇框進(jìn)行選擇名船。
1.使用SENTTO發(fā)送 [java] 復(fù)制代碼代碼如下:
Intent data=new Intent(Intent.ACTION_SENDTO); data.setData(Uri.parse("mailto:way.ping.li@gmail.com")); data.putExtra(Intent.EXTRA_SUBJECT, "這是標(biāo)題"); data.putExtra(Intent.EXTRA_TEXT, "這是內(nèi)容"); startActivity(data); Intent data=new Intent(Intent.ACTION_SENDTO); data.setData(Uri.parse("mailto:way.ping.li@gmail.com")); data.putExtra(Intent.EXTRA_SUBJECT, "這是標(biāo)題"); data.putExtra(Intent.EXTRA_TEXT, "這是內(nèi)容"); startActivity(data);
通過(guò)向Intent中putExtra來(lái)設(shè)定郵件的相關(guān)參數(shù)双揪。
2.使用SEND發(fā)送 [java] 復(fù)制代碼代碼如下:
Intent intent = new Intent(Intent.ACTION_SEND); String[] tos = { "way.ping.li@gmail.com" }; String[] ccs = { "way.ping.li@gmail.com" }; String[] bccs = {"way.ping.li@gmail.com"}; intent.putExtra(Intent.EXTRA_EMAIL, tos); intent.putExtra(Intent.EXTRA_CC, ccs); intent.putExtra(Intent.EXTRA_BCC, bccs); intent.putExtra(Intent.EXTRA_TEXT, "body"); intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///mnt/sdcard/a.jpg")); intent.setType("image/"); intent.setType("message/rfc882"); Intent.createChooser(intent, "Choose Email Client"); startActivity(intent); Intent intent = new Intent(Intent.ACTION_SEND); String[] tos = { "way.ping.li@gmail.com" }; String[] ccs = { "way.ping.li@gmail.com" }; String[] bccs = {"way.ping.li@gmail.com"}; intent.putExtra(Intent.EXTRA_EMAIL, tos); intent.putExtra(Intent.EXTRA_CC, ccs); intent.putExtra(Intent.EXTRA_BCC, bccs); intent.putExtra(Intent.EXTRA_TEXT, "body"); intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///mnt/sdcard/a.jpg")); intent.setType("image/"); intent.setType("message/rfc882"); Intent.createChooser(intent, "Choose Email Client"); startActivity(intent);
很簡(jiǎn)單,發(fā)送郵件中包帚,有收件者渔期,抄送者,密送者渴邦。 也就是分別通過(guò) Intent.EXTRA_EMAIL, Intent.EXTRA_CC, Intent.EXTRA_BCC 來(lái)進(jìn)行putExtra來(lái)設(shè)定的疯趟,而單個(gè)附件的發(fā)送,則使用Intent.EXTRA_STREAM來(lái)設(shè)置附件的地址Uri谋梭。
3.使用SEND_MULTIPLE來(lái)進(jìn)行多附件的發(fā)送 [java] 復(fù)制代碼代碼如下:
Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); String[] tos = { "way.ping.li@gmail.com" }; String[] ccs = { "way.ping.li@gmail.com" }; intent.putExtra(Intent.EXTRA_EMAIL, tos); intent.putExtra(Intent.EXTRA_CC, ccs); intent.putExtra(Intent.EXTRA_TEXT, "body"); intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); ArrayList<uri> imageUris = new ArrayList<uri>(); imageUris.add(Uri.parse("file:///mnt/sdcard/a.jpg")); imageUris.add(Uri.parse("file:///mnt/sdcard/b.jpg")); intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris); intent.setType("image/"); intent.setType("message/rfc882"); Intent.createChooser(intent, "Choose Email Client"); startActivity(intent); Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); String[] tos = { "way.ping.li@gmail.com" }; String[] ccs = { "way.ping.li@gmail.com" }; intent.putExtra(Intent.EXTRA_EMAIL, tos); intent.putExtra(Intent.EXTRA_CC, ccs); intent.putExtra(Intent.EXTRA_TEXT, "body"); intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); ArrayList<uri> imageUris = new ArrayList<uri>(); imageUris.add(Uri.parse("file:///mnt/sdcard/a.jpg")); imageUris.add(Uri.parse("file:///mnt/sdcard/b.jpg")); intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris); intent.setType("image/"); intent.setType("message/rfc882"); Intent.createChooser(intent, "Choose Email Client"); startActivity(intent);
發(fā)送多個(gè)附件信峻,最主要的時(shí)候,通過(guò)putParcelableArrayListExtra將多個(gè)附件的Uri地址List設(shè)置進(jìn)去就OK了瓮床。其實(shí)還是很簡(jiǎn)單的盹舞。
更新:
public class MailClientChoose {
public static void mailContact(Context c, String mailAdress) {
Uri uri = Uri.parse("**mailto:"+
**mailAdress);
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
//intent.putExtra(Intent.EXTRA_CC, email); // 抄送人
// intent.putExtra(Intent.EXTRA_SUBJECT, "這是郵件的主題部分"); // 主題
// intent.putExtra(Intent.EXTRA_TEXT, "這是郵件的正文部分"); // 正文 c.startActivity(Intent.createChooser(intent, "請(qǐng)選擇郵件類應(yīng)用")); }}
有兩點(diǎn)需要注意:
(1):必須使用Intent.ACTION_SENDTO产镐,而不是Intent.ACTION_SEND。
否則就會(huì)出現(xiàn)很多非郵箱類應(yīng)用
(2):必須用 : Uri uri = Uri.parse("[mailto:"+mailAdress(mailto:%22+mailAdress));
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
而不是 :
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.putExtra(Intent.EXTRA_EMAIL, mailAdress);
否則找不到郵箱類應(yīng)用