鍍金池/ 教程/ Android/ Android發(fā)送電子郵件
Android 應(yīng)用組件
使用布局文件自定義Android組件
Android通知
Android主題示例
Android JetPlayer實例
Android MediaPlayer(多媒體播放)
Android AbsoluteLayout
Android FrameLayout
Android Gestures/手勢
Android AutoCompleteTextView(自動完成)實例
Android 資源組織和訪問
Android ListView
Android GridView
Android數(shù)據(jù)備份
Android撥打電話
Android發(fā)送短信/SMS
Android ProgressDialog
SimpleCursorAdapter
Android發(fā)送電子郵件
Android Activity
Android TextView
Android事件處理
Android TableLayout
Android加載Spinner
Android內(nèi)容提供者
Android自定義字體
Android Service
Android CheckBox
Android Intent過濾器
Android LinearLayout
Android登錄實例
Android RadioButton
Android樣式和主題
Android自定義組件及屬性
Android UI控件
Android Animation(動畫)實例
Android Camera(攝像頭)
Android ToggleButton
Android Clipboard(復(fù)制/剪貼板)
Android音頻捕獲(錄音)
發(fā)布Android應(yīng)用
Android Alertdialog(警告對話框)
Android圖片效果
Android內(nèi)部存儲
Android基于位置服務(wù)
Android RadioGroup
Android AutoCompleteTextView
Android Bluetooth(藍(lán)牙)實例
Android RelativeLayout
Android最佳實踐
Android本地化
Android自定義組件
Android教程
Android 架構(gòu)
Android UI布局
Android Button
Android Hello World示例
Android音頻管理器實例
ArrayAdapter
Android拖放
Android碎片/片段
Android圖片切換
Android JSON解析器
Android開發(fā)環(huán)境搭建
Android Spinner
Android樣式示例
使用活動代碼自定義Android組件
Android ImageButton
Android EditText
Android廣播接收器

Android發(fā)送電子郵件

在前面已經(jīng)學(xué)會了 Android 的意圖(Intent),這是落實意圖,即一個對象。來自一個部件的消息傳遞到另一個組件使用 - 在應(yīng)用程序或應(yīng)用程序之外。

因此這里不需要從頭開始,因為它們已經(jīng)可以像 Gmail 和 K9mail 開發(fā)電子郵件客戶端。但需要從 Android 應(yīng)用程序發(fā)送的電子郵件,編寫一個活動Activity,使用Android設(shè)備發(fā)送電子郵件需要啟動電子郵件客戶端并發(fā)送電子郵件。為了這個目的,活動將伴隨著相應(yīng)的數(shù)據(jù)負(fù)載一個ACTION_SEND發(fā)送到 Android 意圖解析器。指定選擇器提供適當(dāng)?shù)慕涌诠┯脩暨x擇如何發(fā)送電子郵件數(shù)據(jù)。

以下部分說明 Intent 對象發(fā)送電子郵件。

Intent 對象 - 動作發(fā)送電子郵件

使用ACTION_SEND 的動作啟動 Android 設(shè)備上安裝一個電子郵件客戶端。以下是簡單的語法創(chuàng)建一個Intent 用ACTION_SEND動作

Intent emailIntent = new Intent(Intent.ACTION_SEND);

Intent 對象 - 數(shù)據(jù)/發(fā)送電子郵件的類型

要發(fā)送電子郵件,需要指定mailto:URI使用 setData() 方法并且數(shù)據(jù)類型是text/plain使用settype()方法如下:

emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("text/plain");

Intent 對象- 附加發(fā)送電子郵件

Android已經(jīng)內(nèi)置支持TO, SUBJECT, CC, TEXT等域,可以在附加 Intent 之前發(fā)送到目標(biāo)的電子郵件客戶端的Intent??梢允褂妙~外的字段后電子郵件:

S.N. 額外數(shù)據(jù) & 描述
1 EXTRA_BCC 
 String[] 持有應(yīng)密件復(fù)制電子郵件地址
2 EXTRA_CC 
String[] 持有復(fù)制電子郵件地址
3 EXTRA_EMAIL 
String[] 持有應(yīng)遞送到電子郵件地址
4 EXTRA_HTML_TEXT 
與該意圖相關(guān)聯(lián)的常數(shù)字符串,使用 ACTION_SEND 替代 EXTRA_TEXT 為 HTML 格式的文本
5 EXTRA_SUBJECT 
常量字符串持有一條消息的所需主題行
6 EXTRA_TEXT 
與該意圖相關(guān)聯(lián)的CharSequence常量,具有ACTION_SEND用來提供文字?jǐn)?shù)據(jù)被發(fā)送
7 EXTRA_TITLE 
一個CharSequence對話框的標(biāo)題,提供給用戶在ACTION_CHOOSER使用時

下面是一個例子展示如何分配額外的數(shù)據(jù)到 intent

emailIntent.putExtra(Intent.EXTRA_EMAIL  , new String[]{"recipient@example.com"});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
emailIntent.putExtra(Intent.EXTRA_TEXT   , "body of email");

示例

下面的示例演示如何在實際使用Intent對象啟動電子郵件客戶端發(fā)送電子郵件給定的收件人。要測試這個例子,需要實際配備了最新的Android OS的移動設(shè)備,否則仿真器可能無法正常工作。其次,需要在您的設(shè)備上安裝一個電子郵件客戶端,如 Gmail 或 K9mail

步驟 描述
1 使用Android Studio創(chuàng)建Android應(yīng)用程序,并將它命名為SendEmailDemounde。創(chuàng)建這個項目,確保目標(biāo)SDK并編譯在Android SDK為最新版本以及使用更高級別的API
2 修改 src/MainActivity.java 文件,并添加所需的代碼,以發(fā)送電子郵件
3 修改所需的布局XML文件res/layout/activity_main.xml 添加GUI組件。這里添加一個簡單的按鈕,啟動電子郵件客戶端
4 修改res/values/strings.xml定義所需的常量值
5 修改 AndroidManifest.xml 如下所示
6 運行該應(yīng)用程序啟動 Android模擬器并驗證應(yīng)用程序所做的修改結(jié)果。

以下是修改的主活動文件的內(nèi)容 src/com.yiibai.sendemaildemo/MainActivity.java.

package com.example.sendemaildemo;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      Button startBtn = (Button) findViewById(R.id.sendEmail);
      startBtn.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
         sendEmail();
      }
   });

   }
   protected void sendEmail() {
      Log.i("Send email", "");

      String[] TO = {"amrood.admin@gmail.com"};
      String[] CC = {"mcmohd@gmail.com"};
      Intent emailIntent = new Intent(Intent.ACTION_SEND);
      emailIntent.setData(Uri.parse("mailto:"));
      emailIntent.setType("text/plain");


      emailIntent.putExtra(Intent.EXTRA_EMAIL, TO);
      emailIntent.putExtra(Intent.上一篇:Android ProgressDialog下一篇:Android Gestures/手勢