5.4.3 发送短信

5.4.3 发送短信

在“发送短信”按钮的单击事件处理的回调方法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的方法,该方法的实现为:

 
 
  1. private void sendSMS(String phoneNumber, String message) {  
  2. PendingIntent  pi  =  PendingIntent .getActivity(this, 0,  
  3. new Intent(this, TinySMS.class), 0);  
  4. SmsManager  sms  =  SmsManager .getDefault();  
  5. sms.sendTextMessage(phoneNumber, null, message, pi, null);  

SmsManager是android.telephony.gsm.SmsManager中定义的用户管理短信应用的类。它的用法有点特殊,开发 人员不用直接实例化SmsManager类,而只需要调用静态方法getDefault()获得SmsManger对象,方法 sendTextMessage()用于发送短信到指定号码。在上面这段代码中,我们使用了一个PendingIntent的对象,该对象指向 TinySMSActivity。因此当用户按下“发送短信”键之后,用户界面会重新回到TinySMS的初始界面。

在Android的模拟器中对短信或电话提供了非常方便的测试功能。用户只需要在Windows命令行中输入emulator再启动一个 Android模拟器,这样就可以实现两个手机间的电话或者短信的测试。需要说明的是,每个模拟器左上角的数字代表了该模拟器的电话号码。比如我们现在有 两个模拟器,号码分别是5556和5554,从5556发送短信Hello, This is 5556到5554的效果如图5-11所示:图左侧的模拟器(5556)发送短信到右侧的模拟器(5554)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值