`
ydbc
  • 浏览: 721429 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

android之发送短信的方法研究

 
阅读更多

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

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

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<String> divideContents = smsManager.divideMessage(content);  
for (String text : divideContents) {  
	smsManager.sendTextMessage("150xxxxxxxx", null, text, sentPI, deliverPI);  
}

这里主要讲解第二种方法,不跳转直接发送,对于用户体验来说是好的:

上面第一行代码,是获取短信管理器,

第二行是拆分短信内容,因为短信对于字数是有限制的

第三至五行就是真正发送短信了,

对于短信发送的参数如下:

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

-- destinationAddress:目标电话号码,你要发给谁
-- scAddress:短信中心号码,测试可以不填
-- text: 短信内容
-- sentIntent:发送 -->中国移动 --> 中国移动发送失败 --> 返回发送成功或失败信号 --> 后续处理

即,这个意图包装了短信发送状态的信息,是否发送成功
-- deliveryIntent: 发送 -->中国移动 --> 中国移动发送成功 --> 返回对方是否收到这个信息 --> 后续处理

即:这个意图包装了短信是否被对方收到的状态信息,对方是否成功接收(供应商已经发送成功,但是对方没有收到)。

那么调用系统发送短信之后,还要处理返回的状态,代码如下:

处理返回的发送状态

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

作者:jason0539

微博:http://weibo.com/2553717707

博客:http://blog.csdn.net/jason0539(转载请说明出处)

分享到:
评论

相关推荐

    最新andriod发送中文短信方法

    如题,网上很多关于发送中文短信的方法,但是真要用的时候,发现能找到的方法都过时了;基本上那些方法都是说要重新构造PDU;  但是在andriod1.6之后,SubmitPdu 类被隐藏掉了,方法直接被废掉了;  不过还是有...

    Android模拟器之间相互发短信代码

    最近做毕业设计的时候遇到了android模拟器之间相互发短信的问题 我研究了很久查询了一些资料最后终于搞定了下来 写了代码供大家分享。

    Android获取短信验证码的实现方法

    Android开发中关于短息验证码的设计层出不穷,越来越多的应用为了更好的提高软件的安全性,开始使用通过服务器向用户发送验证码的方式,来保护用户个人信息的安全性。无论是用户注册时的信息验证还是当用户发出找回...

    Android应用源码之自动发送短信).zip项目安卓应用源码下载

    Android应用源码之自动发送短信).zip项目安卓应用源码下载Android应用源码之自动发送短信).zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考

    android开发资料大全

    只发精品——分享一个短信应用源码 百度地图API 之 定位周边搜索POI(奉上源代码) Android 应用小实例--炫酷计时器 android客户端连接服务器并交互实例 Android小项目合集(经典教程) 看到很强大的实例----高仿...

    基于Android图书管理系统开发(最终).doc

    于此同时,手机的功能越来越强大,将脱离传统的打电话、发短信等基本的功能,在此情况下,图书管理系统也将进入手机,通过手机可对图书管理系统进行操作。 本系统是在Android平台下设计的,在Google Android 平台的...

    深入理解Android:卷I--详细书签版

    笔者根据研究Android代码的心得,在本书中尝试性地采用了精简流程、逐个击破的方法进 行讲解,希望这样做能帮助读者更快、更准确地把握各模块的工作流程及其本质。本书大部分章节中都专门撰写了“拓展思路”的内容...

    基于Android手机平台的多媒体短信系统的研究

    为了开发一种多功能的手机多媒体短信系统,本文使用Android手机平台在智能手机上开发的一个通信软件,它可以在安装本软件的手机用户之间发送多媒体短信(包括文字、图片、动画、音频、视频)。该系统分服务器端和...

    Android实习报告.doc

    2. 向选中的联系人打电话、发短信。结构图如图1所示 图1 功能结构图 3.2页面设计 通讯录界面如图2所示。添加联系人和编辑联系人界面,如图3所示。 图2 图3 单击主页面中任意一个名字,即可查看对应的通讯录的详细...

    Android实训报告.doc

    通过综合训练,要求学生掌握java 语言程序设计的基本技能和Android编程的应用,并较系统地掌握JAVA语言程序设计开发 方法以及帮助文件的使用等,使学生通过本次实训,能够进行独立的Android应用程序开 发,能够在...

    android电话系统数据流程分析

    首先抛开Android的一切概念来研究一下电话系统的最基本的描述。我们的手机首先用来打电话的,随后是需要一个电话本,随后是PIM,随后是网络应用,随后是云计算,随后是想我们的手机无所不能,替代PC。但是作为一个...

    Android实训报告(2).doc

    通过综合训练,要求学生掌握java 语言程序设计的基本技能和Android编程的应用,并较系统地掌握JAVA语言程序设计开发 方法以及帮助文件的使用等,使学生通过本次实训,能够进行独立的Android应用程序开 发,能够在...

    Android应用源码带定位和密码找回的锁屏项目

    首先这是个锁屏的应用项目源码,并且有录制手势的功能不过与传统的九宫格不一样,即使源码里面有注释但是至今我也没有弄明白他的手势录制方法, 项目里面貌似还用到了GPS和五次解锁失败就会向指定手机号发送短信,...

    基于kotlin开发的验证码发送注册的app(前端Android studio+springboot后端)

    最近其实有一点“不务正业”,快两个月了都在学网络相关的后端开发,安卓方面很久没去研究了,这次带来的demo是大项目中的一个小小的一块,由于编程语言渐渐转向kotlin,所以原本的项目需要进行重构,不过还不是非常...

    毕设&课设&项目&实训-基于Android系统开发的智能语音助手.zip

    毕设&课设&项目&实训-基于Android系统开发的智能语音助手,它能够实现陪你聊天、打电话、发短信、打开应用 【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、...

    android-5-way-Bluetooth-Relay:此应用程序最多可与 5 台设备进行蓝牙通信

    只能发短信,不支持别的。 ===背景为了继续将智能手机用于个人用途,必须交付我的教授 Reen-Cheng Wang 教授分配的研究通信技术的研究项目。 由于我在回家的路上丢失了自己的智能手机(HTC Wildfire S),我借此...

    FckUrPrivacy:一个简单的Android取证应用程序。

    可静默发短信与清理通话记录 TODO:静默拨号、清理短信记录 TODO:条件待定 监控取证照片内容 可监听全图片信息与图片变化 监控取证IM通信活动(实时键盘记录) 可使用辅助功能监听指定IM键盘记录 监控设备活动位置...

    基于单片机的简易触摸屏手机设计

    本系统是一个基于单片机的简易触摸屏手机。最近几年,手机的发展日新月异, 特别是 android 操作系统和触摸屏的便捷性...通过以上模块,可以实现:接、打电话,接、发英文短信,有来电提 醒功能,以及实时时钟的功能。

    Android应用源码带定位和密码找回的锁屏项目.zip

    首先这是个锁屏的应用项目源码,并且有录制手势的功能不过与传统的九宫格不一样,即使源码里面有注释但是至今我也没有弄明白他的手势录制方法, 项目里面貌似还用到了GPS和五次解锁失败就会向指定手机号发送短信,...

    安卓软件开发--毕业设计开题报告安卓软件文献翻译.docx

    伴随着巨大的产业需求,国内Android系统开发人才需求量也一路高涨,Android应用开发及系统开发的工程师将成为未来几年最热门最受欢迎的职业之一。Android应用程序开发工程师、Android底层开发工程师,NDK开发工程师...

Global site tag (gtag.js) - Google Analytics