鍍金池/ 教程/ Android/ Android發(fā)送短信/SMS
Android 應(yīng)用組件
使用布局文件自定義Android組件
Android通知
Android主題示例
Android JetPlayer實(shí)例
Android MediaPlayer(多媒體播放)
Android AbsoluteLayout
Android FrameLayout
Android Gestures/手勢
Android AutoCompleteTextView(自動(dòng)完成)實(shí)例
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登錄實(shí)例
Android RadioButton
Android樣式和主題
Android自定義組件及屬性
Android UI控件
Android Animation(動(dòng)畫)實(shí)例
Android Camera(攝像頭)
Android ToggleButton
Android Clipboard(復(fù)制/剪貼板)
Android音頻捕獲(錄音)
發(fā)布Android應(yīng)用
Android Alertdialog(警告對話框)
Android圖片效果
Android內(nèi)部存儲(chǔ)
Android基于位置服務(wù)
Android RadioGroup
Android AutoCompleteTextView
Android Bluetooth(藍(lán)牙)實(shí)例
Android RelativeLayout
Android最佳實(shí)踐
Android本地化
Android自定義組件
Android教程
Android 架構(gòu)
Android UI布局
Android Button
Android Hello World示例
Android音頻管理器實(shí)例
ArrayAdapter
Android拖放
Android碎片/片段
Android圖片切換
Android JSON解析器
Android開發(fā)環(huán)境搭建
Android Spinner
Android樣式示例
使用活動(dòng)代碼自定義Android組件
Android ImageButton
Android EditText
Android廣播接收器

Android發(fā)送短信/SMS

有以下兩種方式來使用 Android 設(shè)備發(fā)送短信:

  • 使用 SmsManager 發(fā)送短信

  • 使用內(nèi)置 Intent 發(fā)送短信

使用SmsManager 發(fā)送短信

SmsManager管理,例如在給定的移動(dòng)設(shè)備將數(shù)據(jù)發(fā)送到的SMS操作??梢詣?chuàng)建此對象調(diào)用靜態(tài)方法SmsManager.getDefault() 如下:

SmsManager smsManager = SmsManager.getDefault();

創(chuàng)建 SmsManager 對象之后,可以使用 sendDataMessage() 方法指定的手機(jī)號碼發(fā)送短信,如下:

smsManager.sendTextMessage("phoneNo", null, "SMS text", null, null);

除了上述方法外,SmsManager類可供選擇的其他幾個(gè)重要的函數(shù)。下面列出了這些方法:

S.N. 方法和說明
1 ArrayList<String> divideMessage(String text) 
這個(gè)方法把一個(gè)消息文本分成幾個(gè)片段,最大不能大于短信大小
2 static SmsManager getDefault() 
這個(gè)方法被用來獲取 SmsManager 的默認(rèn)實(shí)例
3 void sendDataMessage(String destinationAddress, String scAddress, short destinationPort, byte[] data, PendingIntent sentIntent, PendingIntent deliveryIntent) 
這個(gè)方法被用來發(fā)送一個(gè)基于數(shù)據(jù) SMS 到特定的應(yīng)用程序的端口
4 void sendMultipartTextMessage(String destinationAddress, String scAddress, ArrayList<String> parts, ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents) 
發(fā)送一個(gè)基于多部分文本短信
5 void sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent) 
發(fā)送基于文本的短信

示例

下面的示例演示如何在實(shí)際中使用 SmsManager 對象給定的手機(jī)號碼發(fā)送短信。

要嘗試這個(gè)例子中,需要實(shí)際配備了最新 Android OS 的移動(dòng)設(shè)備,否則仿真器可能無法正常工作。
步驟 描述
1 使用Android Studio 創(chuàng)建Android應(yīng)用程序,并將它命名為SendSMSDemounder。在創(chuàng)建這個(gè)項(xiàng)目,確保目標(biāo) SDK 編譯在Android SDK 的最新版本或使用更高級別的API
2 修改 src/MainActivity.java 文件,并添加所需的代碼以發(fā)送短信
3 修改所需的布局XML文件 res/layout/activity_main.xml 添加任何GUI組件。加入了一個(gè)簡單的GUI以輸入手機(jī)號碼并短信發(fā)送,以及一個(gè)簡單的按鈕發(fā)送短信。
4 修改 res/values/strings.xml 定義所需的常量值
5 修改  AndroidManifest.xml  如下所示
6 運(yùn)行該應(yīng)用程序啟動(dòng)Android模擬器并驗(yàn)證應(yīng)用程序所做的修改結(jié)果。

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

package com.example.sendsmsdemo;

import android.os.Bundle;
import android.app.Activity;
import android.telephony.SmsManager;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

   Button sendBtn;
   EditText txtphoneNo;
   EditText txtMessage;

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

      sendBtn = (Button) findViewById(R.id.btnSendSMS);
      txtphoneNo = (EditText) findViewById(R.id.editTextPhoneNo);
      txtMessage = (EditText) findViewById(R.id.editTextSMS);

      sendBtn.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
            sendSMSMessage();
         }
      });

   }
   protected void sendSMSMessage() {
      Log.i("Send SMS", "");

      String phoneNo = txtphoneNo.getText().toString();
      String message = txtMessage.getText().toString();

      try {
         SmsManager smsManager = SmsManager.getDefault();
         smsManager.sendTextMessage(phoneNo, null, message, null, null);
         Toast.makeText(getApplicationContext(), "SMS sent.",
         Toast.LENGTH_LONG).show();
      } catch (Exception e) 上一篇:Android GridView下一篇:Android Clipboard(復(fù)制/剪貼板)