android 发送短信的两种方式
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 发送短信的两种方式相关推荐
- android发送短信的两种方式,发送长短信的两种方式,群发短信
android 发送短信的方法 方法一:调用系统的短信APP,发送短信. Intent smsIntent = new Intent(Intent.ACTION_VIEW);smsIntent.set ...
- Android发送短信的两种方法
Android发送短信代码的两种方法 Android发送短信代码的两种方法 有两种方法可以实现发送短信: 其一是使用intent-startActivity,URI数据格式为"smsto:n ...
- Android之发送短信的两种方式
SMS涉及的主要类SmsManager 实现SMS主要用到SmsManager类,该类继承自java.lang.Object类,下面我们介绍一下该类的主要成员. 公有方法: ArrayList< ...
- Android发送短信时 短信内容超长处理
Android发送短信时 短信内容超长处理 一条短信只可容纳70个中文,所以当短信长度超过70个中文字符时程序就要特殊处理了. 通常有两种方式: 一.通过sendTextMessage()方法逐条依次 ...
- 普歌-腾讯云短信+使用node发送短信(3种方法API、SDK)、封装工具、搭建web服务、写接口、调用接口发送短信、时效性判断、验证验证码的正确性(下)
普歌-结合腾讯云短信服务+node搭建一个简单的发送短信web小项目 涉及技术: 腾讯云服务 后端服务:node+express 前端搭建:html+js 前言:本来这篇博客应该很早就发了,中间有一些 ...
- android发送短信
使用android发送短信,需要先进行添加发送,读取短信新的权限: <uses-permissionandroid:name="android.permission.RECEIVE_S ...
- 小米(MIUI)手机监听短信的两种解决方案
测试的系统为MIUI10和模拟器(Pixel 2 API 26) 应用场景:短信验证码自动填写等 方法1为监听系统短信数据库,但是存在一个问题,就是收到短信之后需要点击短信进入短信详情页面,才会触发广 ...
- android编程怎么发送,Android 发送短信程序
搜索热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. mButton1.setOnClickListener(new Button.O ...
- android asynctask源码分析,Android通过Handler与AsyncTask两种方式动态更新ListView(附源码)...
本文实例讲述了Android通过Handler与AsyncTask两种方式动态更新ListView的方法.分享给大家供大家参考,具体如下: 有时候我们需要修改已经生成的列表,添加或者修改数据,noti ...
- Android点击图片随机,android 设置图片随机出现-两种方式
android 设置图片随机出现-两种方式, 第一种方式:得到图片对应的Drawable实例,通过setImageDrawable(drawable)实现 //ImageView对应的id ivBg ...
最新文章
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(50)-Easyui 扁平化皮肤
- 推荐一个代码自动完成的工具AutoCode
- 怎样学python最快_如何少走弯路,快速学会Python
- Jsp(Java Server Pages)简介
- jQuery 表单验证插件,jQuery Validation Engine用法详解
- vsftpd配置文件丢失
- shell脚本开发总结
- Linux学习-01-安装虚拟机与linux系统
- 在Corporate Network里配置SAP Cloud Connector连接SAP云平台,需要设置代理
- Eigen密集矩阵求解 1 - 线性代数及矩阵分解
- 产品认知:你的产品适不适合快速去迭代?
- python数据类型总结_Python 数据类型总结
- [源码学习]--UGUI
- git添加多远端服务器并且实现push代码
- 推荐的MyBatis传参方式List、数组等
- linux sd卡修复工具,免费的SD卡数据恢复工具介绍
- iptables中snat、dnat、masquerade
- 2021年中国人机界面软件市场趋势报告、技术动态创新及2027年市场预测
- yeezy350灰橙_Yeezy 350V2 Grey Orange 侃爷椰子350 灰橙 特价
- ML1.1 机器学习误差分析
热门文章
- 为什么阿里云域名解析48小时还没有生效?
- 【转载】C++编码规范与指导
- Lange电桥的设计
- 2020年阴历二月二十九 投资理财~业余投资者如果不深入研究财报该怎么办?
- 【MVO MTSP】基于matlab灰狼算法求解多旅行商问题(同始终点)【含Matlab源码 1564期】
- 无线路由器WINS服务器,怎么创建和配置wins服务器
- CORS Filter
- 实验五 CA的安装和使用
- 微信小程序 等待几秒、_微信小程序从提交审核到审核通过最快速度:39分55秒!...
- 【Three.js】十二、three.js摄像机控件