发送短信小程序

本文介绍了一个简单的Android短信发送应用,主要使用SmsManager类来发送短信。通过EditText获取电话号码和短信内容,点击按钮触发发送。在AndroidManifest.xml中需声明SEND_SMS权限。代码中还包含如何创建和使用PendingIntent来跟踪短信的发送状态。

上图为代码结构图。

现在我们看下具体的代码。

Send.java

 

main.xml

AndroidManifest.xml

最终效果图为:

和打电话小程序一样,这里也需要开启两个AVD才能进行功能测试。

----------------------------------------------------------------------------------------

废话连篇:

发短信应用的主要的类就是SmsManager。 在 Android 2.0 以前 应该使用 android.telephony.gsm.SmsManager

   之后应该用 android.telephony.SmsManager;

SmsManager smsManager = SmsManager.getDefault();意思为获取系统默认的信息管理器

---------------------------------------------------------------------------------------

  smsManager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent)

             -- destinationAddress:目标电话号码
             -- scAddress:服务商的短信中心号码(例如中国移动的短信中心号码),测试可以不填。
             -- text: 短信内容
             -- sentIntent:发送 -->中国移动 --> 中国移动发送失败 --> 返回发送成功或失败信号 --> 后续处理   即,这个意图包装了短信发送状态的信息

             -- deliveryIntent: 发送 -->中国移动 --> 中国移动发送成功 --> 返回对方是否收到这个信息 --> 后续处理  即:这个意图包装了短信是否被对方收到的状态信息(供应商已经发送成功,但是对方没有收到)。

--------------------------------------------------------------------------------------

public static PendingIntent getBroadcast (Context context, int requestCode, Intent intent, int flags)
返回一个用于广播的PendingIntent,类似于调用Context.sendBroadcast()函数
requestCode 暂时不用
intent 是用于广播的intent
flag 有:FLAG_ONE_SHOT, FLAG_NO_CREATE, FLAG_CANCEL_CURRENT, FLAG_UPDATE_CURRENT 用于设置新建的PendingIntent是使用一次、如无则不创建、取消当前、更新当前等属性。

------------------------------------------------------------------------------

此外,我们还要在AndroidManifest.xml中声明短信发送权限。

 <uses-permission android:name="android.permission.SEND_SMS"/>

-------------------------------------------------------------------------------

有的时候,我们两个AVD进行模拟发短信时,会发现有时候该程序无法正常使用。系统会提示我们NO DNS servers found,找不到DNS服务。这种情况一般是由于你的电脑没有联入网络的原因造成的。

 

 

  1. 发送短信:   
  2. SmsManager smsMgr = SmsManager.getDefault();   
  3. smsMgr.sendTextMessage(address, null, message, nullnull);   
  4.   
  5. 显示写短信界面:   
  6. Uri smsToUri = Uri.parse("smsto://10086");   
  7. Intent mIntent = new Intent( android.content.Intent.ACTION_SENDTO, smsToUri );   
  8. startActivity( mIntent );   
  9.   
  10. 发送电子邮件:   
  11. Intent i = new Intent(Intent.ACTION_SEND);   
  12. i.putExtra(Intent.EXTRA_EMAIL, address);   
  13. i.putExtra(Intent.EXTRA_SUBJECT, filename);   
  14. i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + filename)); ;   
  15. i.setType("text/csv");   
  16. startActivity(Intent.createChooser(i, "EMail File"));   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值