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

//直接调用短信接口发短信

SmsManager smsManager = SmsManager.getDefault();

List divideContents = smsManager.divideMessage(content);

for (String text : divideContents) {

smsManager.sendTextMessage("150xxxxxxxx", null, text, sentPI, deliverPI);

}

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

Uri uri = Uri.parse("smsto:10010");

Intent it = new Intent(Intent.ACTION_SENDTO, uri);

it.putExtra("sms_body", "102");

activity.startActivity(it);

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

获取短信管理器

SmsManager smsManager = SmsManager.getDefault();

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

List divideContents = smsManager.divideMessage(content);

发送拆分后的内容

List divideContents = smsManager.divideMessage(content);

for (String text : divideContents) {

smsManager.sendTextMessage("150xxxxxxxx", null, text, sentPI, deliverPI);

}

处理返回的发送状态

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));

处理返回的接收状态

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));

发送短信的参数说明

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

-- destinationAddress:目标电话号码

-- scAddress:短信中心号码,测试可以不填

-- text: 短信内容

-- sentIntent:发送 -->中国移动 --> 中国移动发送失败 --> 返回发送成功或失败信号 --> 后续处理 即,这个意图包装了短信发送状态的信息

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

android 调用短信,android中可以通过两种方式调用接口发送短信相关推荐

  1. android不调用系统发送短信,android之两种方式调用短信发送接口

    释放双眼,带上耳机,听听看~! 相信很多程序员在开发程序的时候都会遇到短信调用端口的情况,今天是技术狗小编为大家带来的关于android之两种方式调用短信发送接口,希望对你学习这方面知识有帮助! an ...

  2. Android中保存图片的两种方式

    Android中保存图片的两种方式 第一种是保存到数据库: 1.保存到数据库: 2.从数据库读取: 二是以图片格式保存到本地 1. A.声明tempFile以保存到指定路径: B.保存到tempFil ...

  3. ETH:Windows搭建ETH(区块链技术)利用Web端和小程序端两种方式调用ETH上的SC智能合约

    ETH:Windows搭建ETH(区块链技术)利用Web端和小程序端两种方式调用ETH上的SC智能合约 目录 1.Geth安装.配置文件.与ETH节点交互 1.1.下载并安装好geth客户端 1.2. ...

  4. [js] axios为什么可以使用对象和函数两种方式调用?是如何实现的?

    [js] axios为什么可以使用对象和函数两种方式调用?是如何实现的? axios 源码 初始化 看源码第一步,先看package.json.一般都会申明 main 主入口文件. // packag ...

  5. linux耳机插拔检测,Android应用开发之耳机插拔处理两种方式

    本文将带你了解Android应用开发[RK3288][Android6.0] 耳机插拔处理两种方式,希望本文对大家学Android有所帮助. [RK3288][Android6.0]   耳机插拔处理 ...

  6. android获取ip方法,Android开发准确获取手机IP地址的两种方式

    最近看了好多网上获取IP地址的例子,发现好多都不完全准确,这里我写一下获取ip地址的两种方式. 比如微信支付,后台在做接口的时候,要求App端传入IP地址,我们需要判断是网络环境,WI-FI还是3G, ...

  7. Android之从网络上获取图片的两种方式讲解:thread+handle和AsyncTask方式

    从网络上获取图片是一个比较耗时的操作,放在主线程会导致阻塞主线程,响应超时,所以我们不能把它放在主线程里操作,必须放在一个子线程里,我打算采用两种方式去实现.1.采用thread去获取图片,获取到后通 ...

  8. android recocery模式,小米进入Recovery模式的两种方式

    刷机分为卡刷和线刷,卡刷的话必须得进入recovery模式,其中需要运用到某些按键的组合,刷机帮小编特意整理了小米进入recovery模式的方法,各位可以参考下: 小米如何进入Recovery的两种方 ...

  9. java声明异常必须抛出吗_简述java中抛出异常的两种方式

    java编程中经常遇到异常,这时就需要利用java中的异常抛出机制,在java中提供了两种抛出异常的方法:try{}  catch() {}和throw. 一.抛出异常的两种方式 (1) 首先我们来看 ...

最新文章

  1. git如何移除某文件的版本控制
  2. mac sublime html开发环境,在Mac下用Sublime Text 2 架设C开发环境
  3. java int数列转字符串,鍥剧墖杞瓧绗︿覆
  4. python怎么自动生成测试报告_python生成接口自动化测试报告模版
  5. Condition中的transferForSignal()方法的不解
  6. php键值交换,php键值互换时走的一个弯路
  7. 服务器imm口加载硬盘,ibm x3250 M4如何进IMM(远程管理口)
  8. 解决jQuery聚焦时光标在input最前面的问题
  9. pmos导通条件 图示_如何判断NMOS管和PMOS管
  10. 美团暑期实习前端面试
  11. [恢]hdu 2003
  12. 攻击性Web测试框架(OWTF)是OWASP + PTES的重点,旨在联合优秀的工具使渗透测试更加高效,主要由Python编写
  13. linux 安装pureftp
  14. 三角函数之和差化积/积化和差/倍角公式(汇总)
  15. UVA 487 - Boggle Blitz
  16. 2019年秋季学期实验室安全考试1
  17. Linux常用命令大全,一篇搞定
  18. Cynthia代码审计
  19. 当贝塞尔同学遇见麻衣学姐
  20. 投出去的简历石沉大海,1个月只有2个面试邀约,这正常吗?

热门文章

  1. OA系统--用户登录
  2. 电脑键盘各键名称及功能是什么
  3. VideoReader Failed to init Ubuntu 18.04
  4. python语言的注释语句引导符不包括什么_以下选项中,哪一个是Python语言中代码注释使用的符号?________...
  5. Android Studio设计APP实现与51单片机通过WIFI模块(ESP8266-01S)通讯控制LED灯亮灭的设计源码【详解】
  6. 姓名拼音首字母缩写_公司首字母缩写
  7. 不干正事儿系列文章1:Sonic Pi简单应用
  8. VS2015安装失败
  9. PMP第三章:项目经理的角色
  10. 计算机1为什么代表高电平,高电平为什么表示1,低电平为什么表示0?