本实例通过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"/>