我朋友拜托我做一个能实现向指定号码发短信获取动态密码的一个小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. springboot与thrift集成实现服务端和客户端

    我们这里用一个简单的小功能来演示一下如何使用springboot集成thrift 这个功能是,判断hdfs路径存在. 1.先解决依赖 <dependencies> <dependen ...

  2. Re-Order Buffer

    Re-order Buffer(ROB)是处理器中非常重要的一个模块,它位于renamer与scheduler(RS)之间,并且也是execution unit(EU)的出口.ROB作为指令处理的后端 ...

  3. Masonry框架源码深度解析

    Masonry是iOS在控件布局中经常使用的一个轻量级框架,Masonry让NSLayoutConstraint使用起来更为简洁.Masonry简化了NSLayoutConstraint的使用方式,让 ...

  4. 移动端自动化自动化(Android&iOS)——Appium

    Appium-Python 移动端自动化环境搭建 Appium介绍 Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持iOS.Android及Firefox ...

  5. 奥利奥好吃吗?Android 8.0新特性适配测试报告来啦!

    WeTest 导读 谷歌2017 I/O开发者大会上发布了Android 8.0的正式版, 其官方代号为Oreo(奥利奥).网上关于Android8.0新功能特性的介绍已铺天盖地,新功能特性会对程序应 ...

  6. win10 uwp clone

    clone 可以用MemberwiseClone来复制一个类 但这个复制是浅复制,创建一个新的object然后复制值字段,对于引用就直接复制引用,不复制引用的本身,指向同样引用 如果要复制引用,可以使 ...

  7. OMP算法代码学习

    正交匹配追踪(OMP)算法的MATLAB函数代码并给出单次测试例程代码 测量数M与重构成功概率关系曲线绘制例程代码 信号稀疏度K与重构成功概率关系曲线绘制例程代码   参考来源:http://blog ...

  8. 解决Nginx+Tomcat时ContextPath不同的问题

    1        问题描述 项目前端模板使用Thymeleaf,在对各种URL进行格式化输出时,都使用@{uri}代码.它会自动读取项目部署的虚拟路径,添加到URI的前端输出. 真实测试和生产环境中, ...

  9. swiper使用小结

    最近做一个移动端项目想用Swiper移动端插件,需求实现一个轮播图的效果,并且需要自定义分页器,效果跟这个差不多这里demo 好吧,开始动手! 注意参考的3.0Swiper的API文档需要引入3.0版 ...

  10. BZOJ-1045-[HAOI2008] 糖果传递(中位数原理)

    Description 有n个小朋友坐成一圈,每人有ai个糖果.每人只能给左右两人传递糖果.每人每次传递一个糖果代价为1. Input 第一行一个正整数nn<=1'000'000,表示小朋友的个 ...