android 中调用接口发送短信

android <初级篇> 发送短信(调用已有接口)——菜鸟的学习之路 对于手机来说,打电话,发短信等基本功能在操作系统的平台中都已经做好了,如果你开发的应用程序需要使用到打电话或者发短信的功能,直接调用android提供的方法或接口即可,无需自己重新写实现的方法。   下面以一个小小的发送短信的例子练习一下如何调用已封装好的接口   1. 确定需求。 要发送一封短信,需要以下一些元素: textView : 收信人 EditText: (收信人地址,即 阅读详情
android中可以通过两种方式发送短信

第一:调用系统短信接口直接发送短信;主要代码如下:
Java代码 复制代码  收藏代码
  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. }  
//直接调用短信接口发短信
SmsManager smsManager = SmsManager.getDefault();
List<String> divideContents = smsManager.divideMessage(content);  
for (String text : divideContents) {  
	smsManager.sendTextMessage("150xxxxxxxx", null, text, sentPI, deliverPI);  
}


第二:调起系统发短信功能;主要代码如下:
Java代码 复制代码  收藏代码
  1. Uri uri = Uri.parse("smsto:10010");             
  2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);             
  3. it.putExtra("sms_body", "102");       //sms_body为固定字符串      
  4. activity.startActivity(it);  
Uri uri = Uri.parse("smsto:10010");          
Intent it = new Intent(Intent.ACTION_SENDTO, uri);          
it.putExtra("sms_body", "102");          
activity.startActivity(it);



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

1.获取短信管理器
Java代码 复制代码  收藏代码
  1. SmsManager smsManager = SmsManager.getDefault();  
SmsManager smsManager = SmsManager.getDefault();


2.拆分短信内容(手机短信长度限制)
Java代码 复制代码  收藏代码
  1. List<String> divideContents = smsManager.divideMessage(content);  
List<String> divideContents = smsManager.divideMessage(content);


3.发送拆分后的内容
Java代码 复制代码  收藏代码
  1. List<String> divideContents = smsManager.divideMessage(content);     
  2. for (String text : divideContents) {     
  3.     smsManager.sendTextMessage("150xxxxxxxx", null, text, sentPI, deliverPI);     
  4. }  
List<String> divideContents = smsManager.divideMessage(content);  
for (String text : divideContents) {  
	smsManager.sendTextMessage("150xxxxxxxx", null, text, sentPI, deliverPI);  
}


4.处理返回的发送状态
Java代码 复制代码  收藏代码
  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));  
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));


5.处理返回的接收状态
Java代码 复制代码  收藏代码
  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));  
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代码 复制代码  收藏代码
  1. smsManager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent)  
smsManager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent)

-- destinationAddress:目标电话号码
-- scAddress:短信中心号码,测试可以不填
-- text: 短信内容
-- sentIntent:发送 -->中国移动 --> 中国移动发送失败 --> 返回发送成功或失败信号 --> 后续处理   即,这个意图包装了短信发送状态的信息
-- deliveryIntent: 发送 -->中国移动 --> 中国移动发送成功 --> 返回对方是否收到这个信息 --> 后续处理  即:这个意图包装了短信是否被对方收到的状态信息(供应商已经发送成功,但是对方没有收到)。 
Android之发送短信的两种方式 Android之发送短信的两种方式 1、调用系统短信接口直接发送短信 2、调起系统发短信功能 (并设置发送状态的监听) 立即下载

相关推荐

国密USB Key开发实战:SKF库调用全流程解析(附代码示例)

本文详细解析了国密USB Key开发中SKF库的调用全流程,涵盖从设备枚举、应用容器遍历到数字签名与验证的核心步骤。通过实战代码示例,深入探讨了SKF库的层次化模型、SM2签名实现细节以及纯软件验签方案,为开发电子签章、安全登录等合规应用提供了一套完整的调用开发指南。

oo7890的博客 524

【Andriod Studio实现拨打电话和发送短信功能】

Andriod Studio实现拨打电话和发送短信功能 大以力电已话功能 在 Android Studio中创建项目,然后在该项目中创建一个Module名称为“IntentDial”。在该 Module中实现本实例,具体步骤如下: (1)在新建 Module的res\layout目录下下添加布局 文件shouji.xml,将添加的布局管理器设置为相对布局管理器,然后在布局管理器中添加4个用于显示公司信息的文本框,再添加两个 ImageButton 组件,分别为拨打电话按钮和发送短信按钮。代码如下: <

qq_45891676的博客 9315

802.1AS时间同步机制深度解析:从Sync报文到多域冗余设计

本文深度解析了802.1AS时间同步机制,从Sync与Follow_Up报文的核心交互原理入手,详细阐述了其如何通过精确的时钟频率比测量、链路延迟计算和驻留时间补偿来实现微秒乃至纳秒级同步。文章进一步探讨了802.1AS-2020版本引入的多时钟域冗余设计,为构建高可靠的车载TSN网络提供了关键见解和实战配置指南。

pytorch8learner的博客 457

Android实现拨打电话和发送短信,IOS,Android调用原生代码拨打电话、发送短信功能...

@DCloud_App_Arrayself.call = function(number) {if(plus.os.name=="Android"){var Intent = plus.android.importClass("android.content.Intent");var Uri = plus.android.importClass("android.net.Uri");var mai...

weixin_35235724的博客 547

【论文阅读笔记】One Shot 3D Photography

论文主页:https://facebookresearch.github.io/one_shot_3d_photography/ 代码地址:https://github.com/facebookresearch/one_shot_3d_photography   该3D照片方向,由于刚入门,所以会倾向于翻译文章。每个操作上的选择,及为什么不进行另外操作的原因都如数放上。 论文小结   本作的工作是从单张RGB图片生成一个移动视角的3D照片。   其管道大致如下: 由RGB图像通过单目深度估计网络估计深度图

时光机 °的博客 1839

OSMDroid 切换地图不更新的问题

用OSMDroid加载Google地图的时候 需要有按钮切换不同图层的地图,如果发现调用了mMapView.setTileSource(ITileSource aTileSource)方法的时候发现地图View没有更新的话,可能是因为两个实例化TileSource对象其子类BitmapTileSourceBase这个类的aName成员变量值一样导致的地图在setTileSource出现不更新问题,...

godoge的博客 1039

android调用系统发送短信

思路1、获取用户输入的将要接收短信的号码;2、获取用户输入的将要发生发送的短信内容3、利用 Intent 调用系统发送短信;实践1、layout布局&lt;EditText android:id="@+id/tel" android:layout_width="match_parent" android:layout_height="wrap_content" an...

weixin_41454168的博客 4161

S32K144后门密钥实战:如何用JLINK脚本绕过复位陷阱更新加密固件

本文详细介绍了在S32K144微控制器上,如何利用JLINK脚本绕过调试器默认复位陷阱,实现通过后门密钥安全更新加密固件的实战方案。针对汽车电子现场维护中常见的“解锁-复位-锁定”循环问题,文章提供了完整的JLinkScript定制方法、批处理工具及故障排除指南,帮助工程师高效完成固件升级。

weixin_29175469的博客 141

Android调用系统的打电话和发短信功能

一、打电话      1、添加打电话的权限在manifast文件中。                 2、使用Uri.parse(String a)创建Uri。            Uri uri = Uri.parse("tel:"+1008611);      3、创建打电话的意图。           Intent intent = new Intent(Intent.A

yangshuangyue的博客 1万+

【RT-DETR涨点改进】独家创新改进篇 | AAAI2024 | RT-DETR引入CFBlock增强对长程依赖和全局语义信息的建模能力,有助于提升复杂场景下小目标、遮挡目标的检测精度

本文给大家介绍在RT-DETR中引入CFBlock模块,能够有效提升模型对长程依赖和全局语义信息的建模能力,在保持轻量化和高效推理的基础上增强特征表达力,特别有助于提升复杂场景下小目标、遮挡目标的检测精度,从而实现更优的精度与速度平衡。

Ai缝合怪、助力小伙伴高效发论文 259

[QMT量化交易小白入门]-四、如何筛选优质可转债,并进行下单操作

通过上述步骤,成功地使用Python代码完成了可转债的筛选、数据处理和下单操作。当然,这只是一个基础的示例,实际投资中还需要考虑更多因素,如市场环境、资金管理、风险控制等。希望本文能为各位投资者提供一些有价值的参考,助力大家在投资道路上走得更远。

木头大左的博客 1728

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

释放双眼,带上耳机,听听看~!相信很多程序员在开发程序的时候都会遇到短信调用端口的情况,今天是技术狗小编为大家带来的关于android之两种方式调用短信发送接口,希望对你学习这方面知识有帮助!android之两种方式调用短信发送接口第一:调用系统短信接口直接发送短信;主要代码如下://直接调用短信接口发短信SmsManager smsManager = SmsManager.getDefault(...

weixin_31881651的博客 332

学习STM32的ADC采集声音

为了采集声音信号,需要一个声音传感器(如麦克风),将声音信号转换为电压信号输入到 ADC 引脚。通过硬件准备、STM32CubeMX 配置和代码实现,我们可以实现将声音信号转换为数字信号,并进行后续处理。STM32 是一款广泛应用于嵌入式系统开发的微控制器平台,其拥有丰富的外设和强大的性能,非常适合进行 ADC(模拟数字转换)的声音采集。函数启动 ADC1 的连续转换模式,然后在一个无限循环中等待 ADC 转换完成,并读取采样结果。四、代码实现 在生成的代码中,会生成一些相关的库文件和示例代码。

m0_75244442的博客 2173

android中调用接口发送短信

android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信;主要代码如下: Java代码   //直接调用短信接口发短信  SmsManager smsManager = SmsManager.getDefault();  List divideContents = smsManager.divideMessage(content);    for (S

暂时为空 1206

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

android中可以通过两种方式调用接口发送短信

第一:调用系统短信接口直接发送短信;主要代码如下: 复制代码 代码如下: //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getDefault(); List divideContents = smsManager.divideMessage(content); for (String text : divideConte

shangandeyu_kun的博客 679

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

[sms]android 中调用接口发送短信

http://ziyu-1.iteye.com/blog/1013932 android中可以通过两种方式发送短信  第一:调用系统短信接口直接发送短信;主要代码如下:  Java代码   //直接调用短信接口发短信   SmsManager smsManager = SmsManager.getDefault();   List divideContent

victoryckl的专栏 760

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 类名.this与类名.class
下一篇: Android软件开发之发送短信与系统短信库解析
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值