android中可以通过两种方式发送短信

第一:调用系统短信接口直接发送短信;主要代码如下:

1.//直接调用短信接口发短信  2.SmsManager smsManager = SmsManager.getDefault();  3.List<String> divideContents = smsManager.divideMessage(content);    4.for (String text : divideContents) {    5.    smsManager.sendTextMessage("150xxxxxxxx", null, text, sentPI, deliverPI);    6.}  


第二:调起系统发短信功能;主要代码如下:

1.Uri uri = Uri.parse("smsto:10010");            2.Intent it = new Intent(Intent.ACTION_SENDTO, uri);            3.it.putExtra("sms_body", "102");            4.activity.startActivity(it);  

这里主要讲解第一种方法,其中大部分信息来源于互联网

1.获取短信管理器

SmsManager smsManager = SmsManager.getDefault();

2.拆分短信内容(手机短信长度限制)

List<String> divideContents = smsManager.divideMessage(content);  

3.发送拆分后的内容

1.List<String> divideContents = smsManager.divideMessage(content);    2.for (String text : divideContents) {    3.    smsManager.sendTextMessage("150xxxxxxxx", null, text, sentPI, deliverPI);    4.}  

4.处理返回的发送状态

1.String SENT_SMS_ACTION = "SENT_SMS_ACTION";  2.Intent sentIntent = new Intent(SENT_SMS_ACTION);  3.PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, sentIntent,  4.        0);  5.// register the Broadcast Receivers  6.context.registerReceiver(new BroadcastReceiver() {  7.    @Override  8.    public void onReceive(Context _context, Intent _intent) {  9.        switch (getResultCode()) {  10.        case Activity.RESULT_OK:  11.            Toast.makeText(context,  12.        "短信发送成功", Toast.LENGTH_SHORT)  13.        .show();  14.        break;  15.        case SmsManager.RESULT_ERROR_GENERIC_FAILURE:  16.        break;  17.        case SmsManager.RESULT_ERROR_RADIO_OFF:  18.        break;  19.        case SmsManager.RESULT_ERROR_NULL_PDU:  20.        break;  21.        }  22.    }  23.}, new IntentFilter(SENT_SMS_ACTION));  

5.处理返回的接收状态

1.String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";  2.// create the deilverIntent parameter  3.Intent deliverIntent = new Intent(DELIVERED_SMS_ACTION);  4.PendingIntent deliverPI = PendingIntent.getBroadcast(context, 0,  5.       deliverIntent, 0);  6.context.registerReceiver(new BroadcastReceiver() {  7.   @Override  8.   public void onReceive(Context _context, Intent _intent) {  9.       Toast.makeText(context,  10.  "收信人已经成功接收", Toast.LENGTH_SHORT)  11.  .show();  12.   }  13.}, new IntentFilter(DELIVERED_SMS_ACTION));  

发送短信的参数说明

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

-- destinationAddress:目标电话号码
-- scAddress:短信中心号码,测试可以不填
-- text: 短信内容
-- sentIntent:发送 -->中国移动 --> 中国移动发送失败 --> 返回发送成功或失败信号 --> 后续处理 即,这个意图包装了短信发送状态的信息
-- deliveryIntent: 发送 -->中国移动 --> 中国移动发送成功 --> 返回对方是否收到这个信息 --> 后续处理 即:这个意图包装了短信是否被对方收到的状态信息(供应商已经发送成功,但是对方没有收到)。

更多相关文章

  1. Android ListView设置Item选中状态
  2. Android全屏(包含3种隐藏顶部状态栏及标题栏和一种隐藏Android 4.
  3. Android中短信的收发机制 发送短信 接收短信 拦截短信 监听短信
  4. android判断当前网络状态,eth wifi pppoe等
  5. Android获取当前网络状态和获取当前设备网络ip地址
  6. 【Android】Android6.0发送短信Demo
  7. android发送与接收超长短信
  8. android 四种堆状态
  9. 我的android 第二天 - 短信发送器

随机推荐

  1. Android(安卓)TextView在XML中的属性
  2. Android之常用文件路径
  3. Android(安卓)Touch事件
  4. Android软件框架的搭建笔记
  5. 2010.11.16———android Camera 拍照的
  6. android下访问sd卡和网络的权限
  7. Android在开机时自动启动一个应用程序
  8. Android(安卓)mms 发送流程
  9. Basic4android:多功能的Android应用软件快
  10. Android获得当前系统时间、星期几、周几