我朋友拜托我做一个能实现向指定号码发短信获取动态密码的一个小app,中间用到了基于监听系统通知的BroadReceiver

来实现获取有新短信并且获取新短信的内容。下面就是这个小app的实现监听部分的BroadReceiver的实现:

首先要实现一个类继承自BroadcastReceiver:

public class TheSmsReciver extends BroadcastReceiver {

private static MessageListener mMessageListener;

public TheSmsReciver() {

super();

}

@Override

public void onReceive(Context arg0, Intent intent) {

// TODO Auto-generated method stub

Bundle bundle = intent.getExtras();

SmsMessage msg = null;

if (null != bundle) {

Object[] smsObj = (Object[]) bundle.get("pdus");

for (Object object : smsObj) {

msg = SmsMessage.createFromPdu((byte[]) object);

Date date = new Date(msg.getTimestampMillis());

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String receiveTime = format.format(date);

//从号码为"106557777"的短信中截取为六位数字的密码

if (msg.getOriginatingAddress().equals("106557777")) {

String str = msg.getDisplayMessageBody();

str=str.trim();

String str2="";

String str3="";

if(str != null && !"".equals(str)){

for(int i=0,j=0;i<str.length();i++){

if(str.charAt(i)>=48 && str.charAt(i)<=57){

j++;

str2+=str.charAt(i);

if(j==6){

str3 = str2;

}

}else{

str2="";

}

}

}

mMessageListener.OnReceived(str3,msg.getTimestampMillis()+"");

}

}

}

}

public interface MessageListener {

public void OnReceived(String message,String time);

}

public void setOnReceivedMessageListener(MessageListener messageListener) {

this.mMessageListener=messageListener;

}

}

然后在Activity中实现对BroadcastReceiver的监听:

public class MainActivity extends Activity {

private TheSmsReciver mSmsReciver;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mSmsReciver=new TheSmsReciver();

mSmsReciver.setOnReceivedMessageListener(new MessageListener() {

​    ​            @Override

​    ​            public void OnReceived(String message,String time) {

​    ​             //message和time就是获取的密码和这条短信的时间

​    ​            }

​    ​        });

}

}

基于BroadReceiver实现获取短信内容的更多相关文章

  1. 基于jquery的-获取短信验证码-倒计时

    在制作短信验证的时候,需要做一个获取短信按钮,点击后显示倒计时, html代码如下: <input class="gain" type="button" ...

  2. 转载使用 ContentObsever 拦截短信,获取短信内容

    在一些应用上,比如手机银行,QQ,微信等,很多时候我们都需要通过发送验证码到手机上,然后把验证码填上去,然后才能成功地继续去做下面一步事情. 而如果每次我们都要离开当前界面,然后去查收短信,记住验证码 ...

  3. Android 获取系统短信内容

    //这里通过内容提供者获取系统短信内容 Uri uri = Uri.parse("content://sms/"); String[] projection = {"_i ...

  4. Android监听系统短信数据库变化-提取短信内容

    由于监听系统短信广播受到权限的限制,所以很多手机可能使用这种方式没法监听广播,从而没办法获取到系统短信,所以又重新开辟一条路. Android监听系统短信数据库内容变化使用场景: 1.监听短信数据库的 ...

  5. 转载:Android自动化测试- 自动获取短信验证码

    前言:android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码. 主要就是实时获取短信信息. android ...

  6. android自动获取短信验证码

    前言:android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码.主要就是实时获取短信信息.android上获 ...

  7. Android项目实战--手机卫士18--读取用户的短信内容以及短信备份

    我们今天要说的就是我们手机卫士里面的高级工具里面的短信备份功能啦,其实这个软件备份的功能也很简单,就是把用户的短信读出来,然后写到一个xml或者数据库里面, 但我们这里的是读取到xml里面的. 首先我 ...

  8. PHP自练项目之发送短信内容

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. PHP获取短信验证码

    PHP如何获取短信验证码?以下是创蓝253短信平台下的PHP接口代码案例:   <?php header("Content-type:text/html; charset=UTF-8& ...

随机推荐

  1. (图文实例)用VB.net操作SQLite数据库

    转载请注明出处:HateMath归来(http://www.cnblogs.com/hatemath/) 环境: Visual Studio 社区版 64位 Windows 7系统 新建的解决方案基于 ...

  2. Scrapy框架--使用cookie

    CookieMiddleware class scrapy.downloadermiddlewares.cookies.CookieMiddlewar 该中间件使得爬取需要cookie(例如使用ses ...

  3. Python正则表达计算器

    Python学习笔记(十二): 计算器 利用Python的正则表达式写的简易计算器 # author : Ryoma # time : 17:39 import re def add(string): ...

  4. 什么是UUID?

    1.定义 UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundatio ...

  5. Java IO(Properties/对象序列化/打印流/commons-io)

    Java IO(Properties/对象序列化/打印流/commons-io) Properties Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载. ...

  6. 深入javascript之对象

    前言 这是读书笔记第二篇,看完之后突然发现自己对js的内置的一些东西还是了解的不够全面,很多方法见都没见过,啥用都不知道,这是非常不可取的.码农好歹也得眼熟啊,晓都不晓得后面的学习还怎么进行下去... ...

  7. LeetCode 561. Array Partition I (数组分隔之一)

    Given an array of 2n integers, your task is to group these integers into n pairs of integer, say (a1 ...

  8. How the Intelligent Digital Mesh Will Transform Every Business Layer

    The "intelligent digital mesh" is the definitive package for tomorrow's titans of business ...

  9. WebSocket 详解教程

    WebSocket 详解教程 概述 WebSocket 是什么? WebSocket 是一种网络通信协议.RFC6455 定义了它的通信标准. WebSocket 是 HTML5 开始提供的一种在单个 ...

  10. 重温C语言小感

    这周对我感触比较大的就是重温了下C语言,当然重点还是放到了指针那块,一看到指针就想到了链表,还有那个 指针申明,“函数指针”,“指针函数”, “使用指针实现数组降维数”,还有就是大学初学编程的点滴. ...