文档章节

android读取手机验证码

QGlaunch
 QGlaunch
发布于 2015/02/27 10:18
字数 372
阅读 17
收藏 0
public class GetSmsContent extends ContentObserver{  
    public final String SMS_URI_INBOX = "content://sms/inbox";  
    private Activity activity = null;  
    private String smsContent = "";  
    private EditText verifyText = null;  
      
    private String SMS_BODY = "【我在济南】%";//短息内容包含【我在济南】    
  
    public GetSmsContent(Activity activity, Handler handler, EditText verifyText) {  
        super(handler);  
        this.activity = activity;  
        this.verifyText = verifyText;  
    }  
  
    /**
     * This method is called when a content change occurs. 
     * 当短信箱(收到/删除/发送 一条短信)发生变换时,该方法才能被调用。
     */
    @Override  
    public void onChange(boolean selfChange) {  
        super.onChange(selfChange);  
        Cursor cursor = null;// 光标  
        // 读取收件箱中短信内容中包含【我在济南】的短信  
        cursor = activity.managedQuery(Uri.parse(SMS_URI_INBOX),   
                new String[] { "_id", "address", "body", "read" }, //要读取的属性  
                "body like ?", //查询条件是什么  
                new String[] { SMS_BODY },//查询条件赋值  
                "date desc");//排序  
        if (cursor != null) {// 如果短信为未读模式  
            cursor.moveToFirst();  
            if (cursor.moveToFirst()) {  
                String smsbody = cursor.getString(cursor.getColumnIndex("body"));  
                System.out.println("smsbody=======================" + smsbody);
                //截取短信内容中第一个逗号之前的字符串。然后通过正则表达式找出字符串中的数字。
                String s = smsbody.substring(0, smsbody.indexOf(","));
                String regEx = "[^0-9]";  
                Pattern p = Pattern.compile(regEx);  
                Matcher m = p.matcher(s.toString());  
                smsContent = m.replaceAll("").trim().toString();  
                if(verifyText != null && null!=smsContent && !"".equals(smsContent)){  
                    verifyText.setText(smsContent);  
                    verifyText.setSelection(smsContent.length());  
                }  
            }  
        }  
    }  
}

调用方法:在Activity的oncreate方法里面注册:

GetSmsContent  content = new GetSmsContent(RegisterByPhone.this, new Handler(), edit_yzm);
// 注册短信变化监听
this.getContentResolver().registerContentObserver(Uri.parse("content://sms/"), true, content);


© 著作权归作者所有

共有 人打赏支持
QGlaunch
粉丝 4
博文 76
码字总数 12568
作品 0
朝阳
私信 提问
安卓版 whatsapp messenger 无法通过短信验证的解决办法

今年四月份开始注册使用安卓版 whatsapp ,当时觉得好玩就没有使用中国联通的手机号码来完成短信验证,而是使用了 heywire 提供的虚拟手机号码完成的验证,后者的号码格式为 +1 712-345-678...

苗哥
2013/08/10
0
2
Android开发:使用AutoInputAuthCode快速实现自动填写验证码

前言 该类库的实现原理:《Android开发:实现APP自动填写注册验证码功能》。感兴趣的可以看下。 项目地址:github.com/xiong-it/Au…,欢迎star/fork,或者issue,pr。 本文原创作者:MichaelX...

MichaelX
10/30
0
0
android发送短信验证码并自动获取验证码填充文本框

android注册发送短信验证码并自动获取短信,截取数字验证码填充文本框。 一.接入短信平台 首先需要选择短信平台接入,这里使用的是榛子云短信平台(http://smsow.zhenzikj.com), 两分钟申请测...

zuolz1985
07/28
0
0
android手机获取手机唯一识别号

一些特殊的代码,对于手机还是挺有用的 显示IMEI: #06# 开启语音拨号记录 ##8351## 关闭语音拨号记录 ##8350## 手机信息/设置 ##4636## 现场测试 ##7262626## PUK解锁 (从紧急拨号界面) 05<...

xiahuawuyu
2012/10/13
0
0
【批处理】批处理脚本实验结果收藏

1.如下脚本是逐级创建a文件夹,b文件夹,c文件夹 @echo offmd abcpause 2.批处理删除文件 @echo offdel /f /q myfile.txtpause 3.批处理(BAT)脚本中如何自动执行adb shell里面的命令 首先创建...

beijing_zbs
2014/10/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Apache防盗链配置,Directory访问控制,FilesMatch进行访问控制

防盗链配置 通过限制referer来实现防盗链的功能 配置前,使用curl -e 指定referer [root@test-a test-webroot]# curl -e "http://www.test.com/1.html" -x127.0.0.1:80 "www.test.com/1.jpg......

野雪球
24分钟前
1
0
RxJava threading

因为Rx针对异步系统设计,并且Rx也自然支持多线程,所以新的Rx开发人员有时会假设Rx默认是多线程的。在其他任何事情之前,重要的是澄清Rx默认是单线程的。 除非另有说明,否则每次调用onNex...

woshixin
24分钟前
0
0
Python的安装及文件类型、变量

一、为什么学习python 服务于大数据、人工智能、自动化运维。 简单易学 代码简洁 薪资高 近几年越来越火 二、Python的安装 linux 系统默认安装, CentOS7 默认安装了python2.7 安装ipython y...

枫叶云
32分钟前
0
0
JeeSite 4.x 树形结构的表设计和用法

有些同仁对于 JeeSite 4 中的树表设计不太了解,本应简单的方法就可实现,却写了很多复杂的语句和代码,所以有了这篇文章。 在 JeeSite 4 中的树表设计我还是相对满意的,这种设计比较容易理...

ThinkGem
38分钟前
21
0
0022-如何永久删除Kafka的Topic

1.问题描述 使用kafka-topics --delete命令删除topic时并没有真正的删除,而是把topic标记为:“marked for deletion”,导致重新创建相同名称的Topic时报错“already exists”。 2.问题复现...

Hadoop实操
41分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部