1. 程式人生 > >Android開發之傳送簡訊

Android開發之傳送簡訊

本例項通過SmsManager的sendTextMessage方法實現傳送簡訊關於

例項執行效果圖:


程式程式碼:

package com.jph.sendmsg;

import android.os.Bundle;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.telephony.SmsManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
/**
 * Describe:</br>
 * 本例項通過SmsManager的sendTextMessage方法
 * 實現傳送簡訊
 * @author JPH
 * Time:2014.07.25
 * */
public class SendMsg extends Activity {
	Button btnSend;
	EditText edtPnum,edtCont;
	//建立一個SmsManager物件
	SmsManager sManager;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		btnSend=(Button)findViewById(R.id.btnSend);
		edtCont=(EditText)findViewById(R.id.edtCont);
		edtPnum=(EditText)findViewById(R.id.edtPnum);
		btnSend.setOnClickListener(new OnClickListener() {			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				String num=edtPnum.getText().toString();
				String content=edtCont.getText().toString();
//				建立一個PendingIntent物件
				PendingIntent pi=PendingIntent.getActivity(
						SendMsg.this,0, new Intent(),0);
				//獲取SmsManager
				sManager=SmsManager.getDefault();
				//傳送簡訊
				sManager.sendTextMessage(num, null, content, pi, null);
				Toast.makeText(SendMsg.this, "傳送簡訊成功", Toast.LENGTH_SHORT).show();
				
			}
		});
	}
}


例項分析:

      上面的程式用到了一個PendingIntent物件,PendingIntent是對Intent的包裝,表示即將發生的意圖,主要用在:通知Notificatio的傳送,短訊息SmsManager的傳送和警報器AlarmManager的執行等等。一般通過呼叫PendingIntent的 getActivity(Context,int, Intent, int), getBroadcast(Context, int, Intent,int), getService(Context, int, Intent, int)靜態方法來獲取PendingIntent物件。與Intent物件不同的是:PendingIntent通常會傳給其它應用元件,從而由其他應用程式來執行PendingIntent包裝的Intent。

程式執行所需要的許可權:

<!-- 授予傳送簡訊的許可權 -->
	<uses-permission android:name="android.permission.SEND_SMS"/>