Android中短信主要采用SmsManager的sendTextMessage()方法来发送文字短信,sendTextMessage()方法有5个参数,第一个参数为对方的手机号码(不能为空),第二个参数为发送方的手机号号码(可以为空),第三个参数为发送的短信内容(不能为空),第四个参数为PendingIntent对象,用于判断发送短信是否成功(可以为空),第五个参数也为PendingIntent对象,当用户接收到短信时会返回该对象(可以为空)。
现在新建一个名为Sample15的Android项目,在main.xml中添加一个TextView、两个EditText和一个Button。其中一个EditText用于输入电话号码,另外一个EditText用于输入发送的短信内容,Button按钮用于发送短信,同时设置EditText的inputType属性为phone,即EditText只能输入电话号码。如下图所示:
然后在Sample15Activity.java中为按钮添加单击事件,当点击按钮时向指定号码发送短信内容。Sample15Activity.java中的代码如下:
publicclass Sample15Activity extends Activity {
/** Called when the activity is first created. */
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ButtonsendButton=(Button)findViewById(R.id.sendbutton);//发送短信按钮
sendButton.setOnClickListener(new OnClickListener(){
@Override
publicvoid onClick(View v) {
// TODO Auto-generated method stub
EditTextphoneText=(EditText)findViewById(R.id.phoneNumEditText);//电话号码
EditTextmsgText=(EditText)findViewById(R.id.msgEditText);//短信内容
StringphoneNum=phoneText.getText().toString();//获取发送到的电话号码
Stringmsg=msgText.getText().toString();//获取发送的短信内容
SmsManagersmsManager=SmsManager.getDefault();//获取默认的SMS管理器
smsManager.sendTextMessage(phoneNum,null, msg, null, null);//发送文本短信
msgText.setText("");//设置短信输入框内容为空
}});
}
}
最后,还需要在AndroidManifest.xml中manifest节下添加可以发送短信的用户许可,如下:
<uses-permission android:name="android.permission.SEND_SMS"/>
运行程序,在两个模拟机上运行结果如下图所示: