Android開發之傳送簡訊
阿新 • • 發佈:2019-01-27
本例項通過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"/>