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

第一:调用系统短信接口直接发送短信;主要代码如下: 
Java代码  收藏代码
/** 
     * 直接调用短信接口发短信 
     * @param phoneNumber 
     * @param message 
     */  
public void sendSMS(String phoneNumber,String message){  
        //获取短信管理器   
        android.telephony.SmsManager smsManager = android.telephony.SmsManager.getDefault();  
        //拆分短信内容(手机短信长度限制)    
        List<String> divideContents = smsManager.divideMessage(message);   
        for (String text : divideContents) {    
            smsManager.sendTextMessage(phoneNumber, null, text, sentPI, deliverPI);    
        }  
    }

第二:调起系统发短信功能;主要代码如下: 
Java代码  收藏代码
/** 
     * 调起系统发短信功能 
     * @param phoneNumber 
     * @param message 
     */  
    public void doSendSMSTo(String phoneNumber,String message){  
        if(PhoneNumberUtils.isGlobalPhoneNumber(phoneNumber)){  
            Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:"+phoneNumber));            
            intent.putExtra("sms_body", message);            
            startActivity(intent);  
        }  
    }

别忘了权限:
<uses-permission android:name="android.permission.SEND_SMS" />

这里主要讲解第一种方法,第一种方法可以监控发送状态和对方接收状态。

处理返回的发送状态:
Java代码  收藏代码
//处理返回的发送状态   
String SENT_SMS_ACTION = "SENT_SMS_ACTION";  
Intent sentIntent = new Intent(SENT_SMS_ACTION);  
PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, sentIntent,  
        0);  
// register the Broadcast Receivers  
context.registerReceiver(new BroadcastReceiver() {  
    @Override  
    public void onReceive(Context _context, Intent _intent) {  
        switch (getResultCode()) {  
        case Activity.RESULT_OK:  
            Toast.makeText(context,  
        "短信发送成功", Toast.LENGTH_SHORT)  
        .show();  
        break;  
        case SmsManager.RESULT_ERROR_GENERIC_FAILURE:  
        break;  
        case SmsManager.RESULT_ERROR_RADIO_OFF:  
        break;  
        case SmsManager.RESULT_ERROR_NULL_PDU:  
        break;  
        }  
    }  
}, new IntentFilter(SENT_SMS_ACTION));

处理返回的接收状态 :
Java代码  收藏代码
//处理返回的接收状态   
String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";  
// create the deilverIntent parameter  
Intent deliverIntent = new Intent(DELIVERED_SMS_ACTION);  
PendingIntent deliverPI = PendingIntent.getBroadcast(context, 0,  
       deliverIntent, 0);  
context.registerReceiver(new BroadcastReceiver() {  
   @Override  
   public void onReceive(Context _context, Intent _intent) {  
       Toast.makeText(context,  
  "收信人已经成功接收", Toast.LENGTH_SHORT)  
  .show();  
   }  
}, new IntentFilter(DELIVERED_SMS_ACTION));

发送短信的参数说明:
Java代码  收藏代码
smsManager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent)

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

android 发送短信的两种方式相关推荐

  1. android发送短信的两种方式,发送长短信的两种方式,群发短信

    android 发送短信的方法 方法一:调用系统的短信APP,发送短信. Intent smsIntent = new Intent(Intent.ACTION_VIEW);smsIntent.set ...

  2. Android发送短信的两种方法

    Android发送短信代码的两种方法 Android发送短信代码的两种方法 有两种方法可以实现发送短信: 其一是使用intent-startActivity,URI数据格式为"smsto:n ...

  3. Android之发送短信的两种方式

    SMS涉及的主要类SmsManager 实现SMS主要用到SmsManager类,该类继承自java.lang.Object类,下面我们介绍一下该类的主要成员. 公有方法: ArrayList< ...

  4. Android发送短信时 短信内容超长处理

    Android发送短信时 短信内容超长处理 一条短信只可容纳70个中文,所以当短信长度超过70个中文字符时程序就要特殊处理了. 通常有两种方式: 一.通过sendTextMessage()方法逐条依次 ...

  5. 普歌-腾讯云短信+使用node发送短信(3种方法API、SDK)、封装工具、搭建web服务、写接口、调用接口发送短信、时效性判断、验证验证码的正确性(下)

    普歌-结合腾讯云短信服务+node搭建一个简单的发送短信web小项目 涉及技术: 腾讯云服务 后端服务:node+express 前端搭建:html+js 前言:本来这篇博客应该很早就发了,中间有一些 ...

  6. android发送短信

    使用android发送短信,需要先进行添加发送,读取短信新的权限: <uses-permissionandroid:name="android.permission.RECEIVE_S ...

  7. 小米(MIUI)手机监听短信的两种解决方案

    测试的系统为MIUI10和模拟器(Pixel 2 API 26) 应用场景:短信验证码自动填写等 方法1为监听系统短信数据库,但是存在一个问题,就是收到短信之后需要点击短信进入短信详情页面,才会触发广 ...

  8. android编程怎么发送,Android 发送短信程序

    搜索热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. mButton1.setOnClickListener(new Button.O ...

  9. android asynctask源码分析,Android通过Handler与AsyncTask两种方式动态更新ListView(附源码)...

    本文实例讲述了Android通过Handler与AsyncTask两种方式动态更新ListView的方法.分享给大家供大家参考,具体如下: 有时候我们需要修改已经生成的列表,添加或者修改数据,noti ...

  10. Android点击图片随机,android 设置图片随机出现-两种方式

    android 设置图片随机出现-两种方式, 第一种方式:得到图片对应的Drawable实例,通过setImageDrawable(drawable)实现 //ImageView对应的id ivBg ...

最新文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(50)-Easyui 扁平化皮肤
  2. 推荐一个代码自动完成的工具AutoCode
  3. 怎样学python最快_如何少走弯路,快速学会Python
  4. Jsp(Java Server Pages)简介
  5. jQuery 表单验证插件,jQuery Validation Engine用法详解
  6. vsftpd配置文件丢失
  7. shell脚本开发总结
  8. Linux学习-01-安装虚拟机与linux系统
  9. 在Corporate Network里配置SAP Cloud Connector连接SAP云平台,需要设置代理
  10. Eigen密集矩阵求解 1 - 线性代数及矩阵分解
  11. 产品认知:你的产品适不适合快速去迭代?
  12. python数据类型总结_Python 数据类型总结
  13. [源码学习]--UGUI
  14. git添加多远端服务器并且实现push代码
  15. 推荐的MyBatis传参方式List、数组等
  16. linux sd卡修复工具,免费的SD卡数据恢复工具介绍
  17. iptables中snat、dnat、masquerade
  18. 2021年中国人机界面软件市场趋势报告、技术动态创新及2027年市场预测
  19. yeezy350灰橙_Yeezy 350V2 Grey Orange 侃爷椰子350 灰橙 特价
  20. ML1.1 机器学习误差分析

热门文章

  1. 为什么阿里云域名解析48小时还没有生效?
  2. 【转载】C++编码规范与指导
  3. Lange电桥的设计
  4. 2020年阴历二月二十九 投资理财~业余投资者如果不深入研究财报该怎么办?
  5. 【MVO MTSP】基于matlab灰狼算法求解多旅行商问题(同始终点)【含Matlab源码 1564期】
  6. 无线路由器WINS服务器,怎么创建和配置wins服务器
  7. CORS Filter
  8. 实验五 CA的安装和使用
  9. 微信小程序 等待几秒、_微信小程序从提交审核到审核通过最快速度:39分55秒!...
  10. 【Three.js】十二、three.js摄像机控件