我们知道,只需通过代码就可以读到收件箱中的短信,发件箱中的短信;但是却没办法在短信发来的瞬间获取;如果我们在短信发来的一瞬间能得到相应的信息内容,那么我们就可以依次来展开很多应用了——也就是通过短信去远程操作一部手机。

如果想实时获取,就需要调用receiver了,写一个监听类,这样我们就可以实时获取短息信息了。

预览图:

还是来看看代码吧。

首先,我们需要创建一个监听类SMSBroadcastReceiver,让他去继承BroadcastReceiver。

再来初始化一个常量ACTION,并赋短信相关参数值。

android.provider.Telephony.SMS_RECEIVED

接着创建onReceive方法。

然后用getAction去监听手机短信相关动态,利用StringBuffer来保存短信信息。

再然后主要代码了。

@Overridepublic void onReceive(Context context, Intent intent) {if (intent.getAction().equals(ACTION)) {StringBuffer SMSAddress = new StringBuffer();StringBuffer SMSContent = new StringBuffer();Bundle bundle = intent.getExtras();if (bundle != null) {Object[] pdusObjects = (Object[]) bundle.get("pdus");SmsMessage[] messages = new SmsMessage[pdusObjects.length];for (int i = 0; i < pdusObjects.length; i++) {messages[i] = SmsMessage.createFromPdu((byte[]) pdusObjects[i]);}for (SmsMessage message : messages) {SMSAddress.append(message.getDisplayOriginatingAddress());SMSContent.append(message.getDisplayMessageBody());}}}}

代码中的SMSAddress为发送短信的号码,SMSContent为短信内容。

要想看到是否成功获取,最简单的方法就是把这两个参数打印出来。

System.out.println("发送号码:" + SMSAddress + "\n" + "短信内容:"+ SMSContent);

不过要把他们加入for循环中,因为当新信息发来时,SMSAddress和SMSContent将被替换。

因此如果要是做应用时,也是在for循环中判断的。

最后要记得在Manifest.xml中注册监听器。

 <receiver android:name="cn.etzmico.SMSBroadcastReceiver"><intent-filter><action android:name="android.provider.Telephony.SMS_RECEIVED"></action></intent-filter></receiver>

同时要加上权限。

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

这样,我们运行程序后,只要有短信接收,SMSAddress和SMSContent就会被赋值。

这里顺便补充一个知识点,关于Eclipse程序的。

相信很多初学者不知道,Eclipse自带一个发短信插件,可以实现给虚拟机发送短信。这样,我们在做短信应用的时候,就不用同时启动多台虚拟机了……

如何操作呢?方法如下。

1.点击菜单栏中的 Window 窗口。

2.找到哦啊其中的 Show View 目录。

3. 选择 Other...。

然后我们发现会弹出一个窗口。

4,为了便于操作,我们在弹出的窗口的搜索栏中,直接输入 Emulator Control。

5.点击列表中的 Emulator Control,再点OK;或者直接双击。

这样就出现了一个窗口,其中有很多参数。

其他的以后有机会再做介绍,我们这次至用到其中4个。

如图所示,我们只需要输入对应的参数,选择需要的类型,最后点发送就可以了。

PS:有的人奇怪为什么灰色,没法输入,没法选择,那是因为你没有选中模拟器。这个插件只能同时给一个模拟器发送消息。关于模拟器的选择,和调用Emulator Control的方法差不多,区别只是在输入Emulator Control的时候输入 Devices 就可以了。你当前选中哪个模拟器了,就会给哪个模拟器发送消息,不需要输入模拟器号码。

Demo资源:http://download.csdn.net/detail/etzmico/3685332

【Android】短信应用——短信信息实时获取相关推荐

  1. 【Android】短信应用——短信截获

    之前写过一篇关于短信截获的文章,通过注册 BroadcastReceive 来获取短信信息. 但是我发现,当装了飞信,360手机安全卫士等同样有截获短信功能的程序后,我自己的程序就截获不到短信了:而且 ...

  2. 用java实现网络爬虫,实时获取中国地震台网数据

    用java实现网络爬虫,实时获取中国地震台网数据 1.如何从网络中爬取相关数据 2.怎么进行数据处理 3.绘图设计 4. 存在问题: 5.java程序的源文件 5.1 爬虫程序 5.2 绘制柱状图程序 ...

  3. android 拨打电话 发送短信 权限,Android开发实现拨打电话与发送信息的方法分析...

    本文实例讲述了Android开发实现拨打电话与发送信息的方法.分享给大家供大家参考,具体如下: xml布局: android:layout_width="fill_parent" ...

  4. 【Android】短信应用——短信发送

    前几天写了一个关于实时获取短信的文章,后来想到以前写的一个有发短信功能的工程,想到其中的好处让我直流口水,今天就说说有关如何通过代码实现短信发送. 当时写完后测试,发现最大的好处就是短信发出去后,在发 ...

  5. Android实现第三方Mob短信验证登录以及手机号显示和修改用户名(简易新闻 五)

    Android实现第三方Mob短信验证登录以及手机号显示和修改用户名(简易新闻 五) 关于之前的功能实现可以从制作简易新闻App导航篇中查看 因为这篇是写了有一段时间的博客,所以这篇(包括后面的简易新 ...

  6. android使用xml备份短信

    很多手机助手都有备份短信的功能.原理是先读取用户手机中短信,然后将读取的数据放到服务其中,恢复短信的时候再从服务器中读取备份的短信,将其写入到手机中.安卓系统提供相关API 来读取短信. 安卓保护数据 ...

  7. Android拦截电话与短信(电话拒接/短信拒收)

    前段时间领导说了这样一个需求:对特定的号码电话进行拦截.短信拒收,在百度了查阅了很多的资料,结果有点不尽人意.特别是AIDL通信接口废了老大劲.直接上过程 创建aidl通信接口直接在main目录新建a ...

  8. Android之Mob第三方短信验证服务

    目录 mob简单介绍 前期准备 2.1注册登录 2.2创建应用 2.3下载sdk 2.4引入sdK 调用有界面接口 3.1效果图 3.2配置AndroidManifest.xml 3.3添加代码 调用 ...

  9. android调用系统发送短信

    思路 1.获取用户输入的将要接收短信的号码: 2.获取用户输入的将要发生发送的短信内容 3.利用 Intent 调用系统发送短信: 实践 1.layout布局 <EditText android ...

最新文章

  1. Java 学习(20)--异常 /  IO 流
  2. 液态大脑与固态大脑——圣塔菲最新群体智能文集
  3. 正则验证车牌号码,包括新能源车牌
  4. 每天一道LeetCode-----将二叉树原地平铺成链式结构
  5. 单片微型计算机简称单片机是指集成,什么是单片微型计算机 -解决方案-华强电子网...
  6. api签名_使用签名保护基于HTTP的API
  7. ldap java_使用LDAP保护Java EE6中的Web应用程序
  8. hibernate简单应用
  9. 学生选课系统,第二版
  10. 实现一个基于XDP/eBPF的学习型网桥
  11. linux下Sublime的安装使用
  12. 通过后台事务来使单据提交工作流
  13. 微信小程序获取云数据库数据并对其进行排序
  14. sqlite3驱动文件
  15. 繁体转简体 java_【Java】简体中文、繁体中文转换
  16. 如何直观形象的理解方向导数与梯度以及它们之间的关系?
  17. 【Golang】对接百度翻译API-golang版本sdk代码
  18. 国产替代风潮下,电子元器件B2B商城系统如何助力企业突围市场竞争
  19. birt 报表与润乾报表对比
  20. C++学习笔记(六)

热门文章

  1. 计算机桌面有浮层,电脑桌面悬浮窗记事本有吗?有可以悬浮在电脑桌面上的便签软件吗...
  2. 双稳态电路的两个稳定状态是什么_晶振电路中选择电容的方式有哪些?
  3. php秒杀负库存问题,店铺商品出现负库存原因分析,负库存商品处理规范
  4. mom和mes系统有哪些异同点?
  5. 软件项目管理-——project 2019 专业版
  6. [ 大道至简系列 ] 三分钟理解-1NF,2NF,3NF
  7. 【5G RRC】Master Information Block (NR-MIB)
  8. 结合环境专业计算机思维论文,环境艺术设计思维的表达论文范文
  9. 网站会员登录,注册设计
  10. Eclips 反编译