本实例通过SmsManager的sendTextMessage方法实现发送短信关于SmsManager的详解大家可以参照:Android开发之SmsManager详解
实例运行效果图:
程序代码:
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"/>