发送与接收短信


权限:

<uses-permission android:name="android.permission.READ_SMS"></uses-permission>

< uses-permission android:name="android.permission.SEND_SMS"></uses-permission>

发送短信:

1. 获得默认的消息管理器

2. 通过sendTextMessage发送短信。

SmsManager sm = SmsManager.getDefault();
sm.sendTextMessage("1888888XXX", null, str, null, null);

接收短信

收到短信时,会发出一个action名称为android.provier.Telephony.SMS_RECEIVED的广播Intent,该Intent存放了接管到的短信内容,应用名称
“pdus”即可从Intent中获取短信内容

registerReceiver(new BroadcastReceiver(){

@Override
 public void onReceive(Context context, Intent intent) {
 // TODO Auto-generated method stub
 Bundle bundle = intent.getExtras();       
 SmsMessage msgs = null;
 String str = "";           
 if (bundle != null)
 {
  //---retrieve the SMS message received---
  Object[] pdus = (Object[]) bundle.get("pdus");         
  for (int i=0;i<pdus.length; i++){
    msgs=SmsMessage.createFromPdu((byte[])pdus[i]);

str += msgs.getMessageBody().toString();
   }
 }

}

}, new IntentFilter("android.provider.Telephony.SMS_RECEIVED"));

发送与接收集成

context.registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
 // TODO Auto-generated method stub
 Bundle bundle = intent.getExtras();       
 SmsMessage msgs = null;
 String str = "";           
 if (bundle != null)
 {
 //---retrieve the SMS message received---
  Object[] pdus = (Object[]) bundle.get("pdus");         
 for (int i=0; i<pdus.length; i++ {
 msgs =SmsMessage.createFromPdu((byte[])pdus[i]);                     
str += msgs.getMessageBody().toString();

}

else {                 // forwarding sms
SmsManager sm = SmsManager.getDefault();
sm.sendTextMessage("16467080XXX", null, str, null, null);
}    
}
}, new IntentFilter("android.provider.Telephony.SMS_RECEIVED"));

时间: 2024-10-27 13:47:39

发送与接收短信的相关文章

通过RS232发送和接收短信(一)

通常,发送和接收短信的终端都是通过串行接口连接电脑,这类设备用得比较多的是GSM Modem和手机.这类设备通常都支持PDU模式,但仍有少数设备只支持Text模式. 设备硬件连接好以后可以通过发送AT指令测试设备是否连接正确能否正常通讯.在这里我使用Windows自带的"超级终端"工具进行通讯.此工具可以在程序--附件--通讯里面找到,如果没有请确认是否安装了此组件.或者在运行里面输入"hypertrm"也可以快速启动"超级终端". 以下所有范例

android基础----&gt;发送和接收短信

收发短信应该是每个手机最基本的功能之一了,即使是许多年前的老手机也都会具备这项功能,而Android 作为出色的智能手机操作系统,自然也少不了在这方面的支持.今天我们开始自己创建一个简单的发送和接收短信的应用. 目录导航 接收短信 发送短信 友情链接 接收短信 项目的结构如下:一个简单的接收和发送短信的功能 一.定义一个接收短信的广播:当手机接收到一条短信的时候,系统会发出一条值为android.provider.Telephony.SMS_RECEIVED 的广播,这条广播里携带着与短信相关的

通过RS232发送和接收短信(三)

接收短信 接收刚收到的短信有两种方法:轮询终端:使用事件 轮询终端可以定期的使用AT+CMGL=0指令读取未读取得指令.方法简单,但许多时候都在做无用功,效率低下,一般不建议采用.下面主要讲解事件法: 指令: AT+CNMI=<mode>,<mt>,<bm>,<ds>,<brf> 参数: mode: 0--缓存在终端 1--直接发送到TE mt: 0--接收到新的SMS不返回事件 1--如果接收到的SMS存储在ME,则返回 +CMTI:<m

Android从普通发送和接收短信到对短信进行拦截

概述: 说实话,关于Android中对短信的一些相关操作是一个比较入门的东西.那我现在还要来写这一篇博客的原因只是因为现在开发中有相关内容,而又想将这些东西分享给更多的人来学习,同时在以后对Android系统的短信进行其他学习的时候也就放在这里做一个记录了,于是就写了这篇啰嗦的文章.如果你觉得这是一个不错的东西,欢迎收藏,以便在以后更方便地查看本人在此篇文章中更新的内容.下面我就从标题中的三个方面来对Android系统中的短信操作进行一个简单地学习. 短信的发送 由于Android中对短信发送方

通过RS232发送和接收短信(二)

查询短信: 1. 查询具有相同状态的所有短信 指令:AT+CMGL=n 其中n代表0-4的数字. 0--未读得短信.执行命令以后自行变为已读取. 1--已读短信. 2--草稿. 3--已发送短信. 4--全部 返回(例): +CMGL: 76,3,,20 0891683108200805F011620D91683194041338F50000FF0530972D8603 76--序号 3--状态:发送 20--PDU串长度 2. 查询特定序号的短信 指令:AT+CMGR=n8 其中n代表序号 返

手机安全卫士------手机防盗页面之发送短信&amp;接收短信

功能需求: 接上一篇文章,如果sim卡变更,则发送一条报警短信给安全号码 接收从安全号码发来的短信,如果内容为报警指令,则根据相应的报警指令做出相应的操作 发送短信 1.创建一个SmsManager对象 SmsManager manager = SmsManager.getDefault(); 2.通过SharedPreferences获取安全号码 String number 3.创建短信内容: content 4.分割短信: 由于每条短信只能70个字,所以我们要把它分割一下:manager.d

PHP短信发送服务 youe短信企业服务

/** * 通用短信平台HTTP接口POST方式发送短信实例 * 返回字符串 * 一般情况下调用此方法 */ function postSendMessage($msgContents,$phoneListStr){ //echo $phoneListStr.'<br/>'; $ShortMSGUid='123456';//短信服务 用户名 $ShortMSGPwd='123456';//短信服务 密码 $ShortMSGSignature='[签名示例]';//短信服务 签名 //$Cust

android学习十四(android的接收短信)

收发短信是每个手机基本的操作,android手机当然也可以接收短信了.android系统提供了一系列的API,使得我们可以在自己的应用程序里接收和发送短信. 其实接收短信主要是利用我们前面学过的广播机制.当手机接收到一条短信的时候,系统会发出一条值为andorid.provider.Telephony.SMS_RECEIVED的广播,这条广播里携带着与短信相关的所有数据.每个应用程序都可以在广播接收器里对它进行监听,收到广播时在从中解析出短信的内容即可. 下面我们来个具体的例子实践下吧,新建一个

Android学习小Demo(19)利用Loader来实时接收短信

之前写过一篇文章<Android学习小Demo(13)Android中关于ContentObserver的使用>,在里面利用ContentOberver去监测短信URI内容的变化.我们先来回顾一下,是如何利用ContentOberver来监测短信内容的变化的. 1)要自定义一个类,比如SmsContentObserver,继承ContentObserver,并且实现其onChange方法. 2)在onChange方法中去查询对应Uri,比如短信收件箱的内容,并将对应的记录利用Handler发送