文档章节

android读取手机验证码

QGlaunch
 QGlaunch
发布于 2015/02/27 10:18
字数 372
阅读 16
收藏 0
点赞 0
评论 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
博文 67
码字总数 11843
作品 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
07/16
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
android手机获取手机唯一识别号

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

xiahuawuyu
2012/10/13
0
0
android手机在slackware linux上的调试

android手机在windows环境下可以通过安装google的usb driver后使用豌豆夹或91助手等工具直接与android手机设备通信。但是在linux上则不同,下面介绍一下在slackware linux 13.37 x86_64位上如...

linuxhunter
2012/02/29
0
2
谷歌Pixel手机出bug:短信都去哪了?

导读 谷歌Pixel手机近期一直bug不断,除了Android Auto服务以及谷歌闹钟Bug外,据外媒Androidpolice报道称,最近部分Pixel手机被曝光无法接收文字短信,谷歌已经确认该bug的存在并承诺在未来...

linuxprobe16
2017/10/30
0
0
android获取string.xml的值

为什么需要把应用中出现的文字单独存放在string.xml文件中呢? 一:是为了国际化,当需要国际化时,只需要再提供一个string.xml文件,把里面的汉子信息都修改为对应的语言(如,English),再...

DB_Terrill
2013/01/08
0
1
Roaming Mantis用DNS劫持来感染安卓智能手机

     2018年3月,日本媒体曝光称,黑客劫持日本路由器的DNS设定将用户重定向到恶意IP地址。重定向导致含有安卓木马Trojan-Banker的应用安装,包括名为facebook.apk和chrome.apk的木马应用...

嘶吼RoarTalk
04/20
0
0
Android AndroidManifest 清单文件以及权限详解

每个Android应用都需要一个名为AndroidManifest.xml的程序清单文件,这个清单文件名是固定的并且放在每个Android应用的根目录下。它定义了该应用对于Android系统来说一些非常重要的信息。And...

程序袁_绪龙
2015/01/13
0
0
Android:TextWatcher

一、文本框动态跟随显示输入以及控制字数 在编写代码的时候,如果需要让文本框能够跟随编辑框输入的内容而显示出来的话,可以使用TextWatcher。 另外,使用该接口可以控制编辑状态和效果,具...

Xushao
2012/08/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
1
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
1
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
今天
13
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
今天
2
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
今天
2
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 vim 4.expect [root@yong-01 sbin]# vim 4.expect#!/usr/bin/expectset passwd "20655739"spawn rsync -av ro...

lyy549745
今天
1
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
今天
1
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
今天
3
0
java 8 复合Lambda 表达式

comparator 比较器复合 //排序Comparator.comparing(Apple::getWeight);List<Apple> list = Stream.of(new Apple(1, "a"), new Apple(2, "b"), new Apple(3, "c")) .collect(......

Canaan_
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部