android 发送短信
在“发送短信”按钮的单击事件处理的回调方法onClick()的实现中,实现发送短信的功能。
- btnSendSMS.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- String phoneNo = txtPhoneNo.getText().toString();
- String message = txtMessage.getText().toString();
- if (phoneNo.length()>0 && message.length()>0){
- sendSMS(phoneNo, message);
- } else {
- Toast.makeText(TinySMS.this,
- "请重新输入电话号码和短信内容",Toast.LENGTH_LONG).show();
- }
- }
- });
读者可能已经注意到,TinySMS并不是使用Intent激活Android自带的短信程序,而是直接使用了一个叫做sendSMS的方法,该方法的实现为:
- private void sendSMS(String phoneNumber, String message) {
- PendingIntent pi = PendingIntent.getActivity(this, 0,
- new Intent(this, TinySMS.class), 0);
- SmsManager sms = SmsManager.getDefault();
- sms.sendTextMessage(phoneNumber, null, message, pi, null);
- }
SmsManager是android.telephony.gsm.SmsManager中定义的用户管理短信应用的类。它的用法有点特殊,开发 人员不用直接实例化SmsManager类,而只需要调用静态方法getDefault()获得SmsManger对象,方法 sendTextMessage()用于发送短信到指定号码。在上面这段代码中,我们使用了一个PendingIntent的对象,该对象指向 TinySMSActivity。因此当用户按下“发送短信”键之后,用户界面会重新回到TinySMS的初始界面。