Android發送短信

要使用手機短信服務,在AndroidManifest.xml中必須添加短信服務權限
AndroidManifest.xml
<uses-permission android:name="android.permission.SEND_SMS"/><!–添加權限–>
 
package com.sms;
import java.util.List;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity implements
  android.view.View.OnClickListener {
 /** Called when the activity is first created. */
 private EditText contact;
 private EditText smsContent;
 private Button commit;
 private String strNo;
 private String strSms;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  initView();
  onClickListener();
 }
 public void initView() {
  contact = (EditText) findViewById(R.id.contact);
  smsContent = (EditText) findViewById(R.id.smsContent);
  commit = (Button) findViewById(R.id.commit);
 }
 public void onClickListener() {
  commit.setOnClickListener(this);
 }
 @Override
 public void onClick(View v) {
  switch (v.getId()) {
  case R.id.commit:
   strNo = contact.getText().toString();
   strSms = smsContent.getText().toString();
   // TODO Auto-generated method stub
   /*
    * 在 Android 2.0 以前 應該使用 android.telephony.gsm.SmsManager 之後應該用
    * android.telephony.SmsManager;
    */
   // 獲取系統默認的短信管理器
   SmsManager smsManager = SmsManager.getDefault();
   PendingIntent sentIntent = PendingIntent.getBroadcast(
     MainActivity.this, 0, new Intent(), 0);
   // 如果字數超過70,需拆分成多條短信發送
   // 按照每條短信最大字數來拆分短信
   if (strSms.length() > 70) {
    List<String> msgs = smsManager.pideMessage(strSms);
    for (String msg : msgs) {
     /*
      * 發送短信
      *
      * smsManager.sendTextMessage(destinationAddress, scAddress,
      * text, sentIntent, deliveryIntent)
      *
      * — destinationAddress:目標電話號碼
      *
      * — scAddress:短信中心號碼,測試可以不填
      *
      * — text: 短信內容
      *
      * — sentIntent:發送 –>中國移動 –> 中國移動發送失敗 –> 返回發送成功或失敗信號 –>
      * 後續處理 即,這個意圖包裝瞭短信發送狀態的信息
      *
      * — deliveryIntent: 發送 –>中國移動 –> 中國移動發送成功 –>
      * 返回對方是否收到這個信息 –> 後續處理
      * 即:這個意圖包裝瞭短信是否被對方收到的狀態信息(供應商已經發送成功,但是對方沒有收到)。
      */
     smsManager.sendTextMessage(strNo, null, msg, sentIntent,
       null);
    }
   } else {
    smsManager.sendTextMessage(strNo, null, strSms, sentIntent,
      null);
   }
   Toast.makeText(MainActivity.this, "短信發送完成", Toast.LENGTH_LONG)
     .show();
   break;
  }
 }
}
 
 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *