android获取短信并自动填充

package com.velo.quanquan.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import net.iaf.framework.util.Loger;
import android.app.Activity;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Handler;
import android.widget.EditText;

/**
 * 读取短信内容 自动填充验证码
 *
 * @author qjx
 *
 */
public class SmsContentUtil extends ContentObserver {

	public static final String SMS_URI_INBOX = "content://sms/inbox";

	private Activity activity = null;

	private String smsContent = "";

	private EditText verifyText = null;

	public SmsContentUtil(Handler handler) {
		super(handler);
	}

	public SmsContentUtil(Activity activity, Handler handler, EditText verifyText) {
		super(handler);
		this.activity = activity;
		this.verifyText = verifyText;
	}

	@Override
	public void onChange(boolean selfChange) {
		super.onChange(selfChange);
		Cursor cursor = null;// 光标
		// 读取收件箱中指定号码的短信
		cursor = activity.getContentResolver().query(Uri.parse(SMS_URI_INBOX), new String[] {
			"_id", "address", "body", "read", "date" }, "address=? and read=?",
			new String[] { "15555215554", "0" }, "date desc");

		if (cursor != null) {// 如果短信为未读模式
			cursor.moveToFirst();
			if (cursor.moveToFirst()) {

				String smsbody = cursor
						.getString(cursor.getColumnIndex("body"));
				Loger.e("smsbody:" + smsbody);
				String regEx = "[^0-9]";
				Pattern p = Pattern.compile(regEx);
				Matcher m = p.matcher(smsbody.toString());
				smsContent = m.replaceAll("").trim().toString();
				verifyText.setText(smsContent);
				verifyText.setSelection(verifyText.getText().toString().trim().length());
			}

		}
	}

}

调用该方法的地方的代码:

SmsContentUtil smsContent = new SmsContentUtil(LoginActivity.this,
new Handler(), verifyText);

 // 注册短信变化监听
  this.getContentResolver().registerContentObserver(Uri.parse("content://sms/"), true, smsContent );

时间: 2024-11-01 04:57:47

android获取短信并自动填充的相关文章

Android获取短信验证码实例教程及自动填写

短信验证需要服务器端生成一个验证码,然后发送到用户输入的手机上,这个过程需要服务器主动向客户发送验证短信,所以这是就需要一个移动或联通的发送短息接口,由于本人目前尚处于学生阶段,没有获得这个接口的权限,所以我就选择了借助网上的移动开发服务平台,来完成这个功能的实现,这里我借用的平台是:http://dashboard.mob.com/,大家可以关注一下,这个平台为我们开发移动应用提供了很好的技术指导,可以大大缩短我们的开发周期.废话不多说,下面开始我们今天的重点. 官方为我们提供了两种设计方式:

Android获取短信验证码的实现方法_Android

先给大家展示下效果图,如果感觉不错,请参考实现思路详解 Android开发中关于短息验证码的设计层出不穷,越来越多的应用为了更好的提高软件的安全性,开始使用通过服务器向用户发送验证码的方式,来保护用户个人信息的安全性.无论是用户注册时的信息验证还是当用户发出找回密码请求时的短信验证,他们的工作原理大致上是一致的,因为项目的需要研究了一下关于这方面的知识,本篇我将带领大家一起实现这一当下流行的设计方案. 众所周知,短信验证需要服务器端生成一个验证码,然后发送到用户输入的手机上,这个过程需要服务器主

Android实现短信验证码自动填写功能

本实例为大家分享了Android实现短信验证码自动填写功能,供大家参考,具体内容如下 实现思路很简单: 1.在需要输入验证码的Activity代码注册监听短信的广播 2.拦截短信,获取其中的验证码 3.回写到EditText private SmsReciver smsReciver = new SmsReciver(); /** 收到短信Action **/ String ACTION_SMS_RECIVER = "android.provider.Telephony.SMS_RECEIVED

android获取短信内容时,总是收到两次短信内容

问题描述 android获取短信内容时,总是收到两次短信内容 public String getSmsAndSendBack() { String[] projection = new String[] { ""address""person""body"" }; StringBuilder str = new StringBuilder(); try { ContentResolver cr = getContentReso

实例详解Android 获取短信会话列表

Android中的短信并没有正式的content provider可用,在官方文档中没有提供定义.不过依然可以自己定义好URI,然后查询出短信内容.例如conetent://sms则是所有短信所在的path. 要将短信按会话分类,原先我是查询出所有短信后,然后再按照thread_id分类.系统自带的短信程序包含一个会话显示界面,每个条目包含:联系人.短信数量.第一条短信等内容.当我的程序处理的短信较多时,一次查询出所有的短信就变得很慢.(如果再加上为每个会话查询联系人信息,则会更慢) 看了系统短

Android短信验证码自动填充功能_Android

笔者发现在很多应用中,都有自动获取验证码的功能:点击获取验证码按钮,收到短信,当前应用不需要退出程序就可以获取到短信中的验证码,并自动填充.觉得这种用户体验很赞,无须用户在短信和App之间来回切换,这个功能是如何实现的呢?其实很简单,就是用到了Android中的一个叫ContentObserver的东西,下面手动简单实现一个~~~ 一.开发ContentObserver 主要是用来监听收件箱的内容,一旦有新消息过来,就去监听是否是我想要的那个号码发过来的短信,如果是,就直接用正则表达式截取 /*

Android短信验证码自动填充功能

笔者发现在很多应用中,都有自动获取验证码的功能:点击获取验证码按钮,收到短信,当前应用不需要退出程序就可以获取到短信中的验证码,并自动填充.觉得这种用户体验很赞,无须用户在短信和App之间来回切换,这个功能是如何实现的呢?其实很简单,就是用到了Android中的一个叫ContentObserver的东西,下面手动简单实现一个~~~ 一.开发ContentObserver 主要是用来监听收件箱的内容,一旦有新消息过来,就去监听是否是我想要的那个号码发过来的短信,如果是,就直接用正则表达式截取 /*

Android实现短信验证码自动填写功能_Android

android应用经常会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,通常,用户收到短信需要最小化应用去查看短信再填入验证码,必然比较麻烦,因此有必要能够自动获得下发的短信验证码,方便了用户的操作,用户体验更好. 原理讲解: 主要就是实时获取短信信息.涉及到ContentObserver类的使用.使用ContentProvider来监听短信数据库的变化,在自定义的ContentObserver当中实现onChange的方法进行监听特定手机号的短信,然后进行信息截取在填

基于Android 获取短信里的温湿度信息。

问题描述 如题.学校要求做设计.之前根本没有做过Android的东西,老师要求10天就要做出来.只能求教大神们了.题目大概是做个APP.获取短信中的关于温湿度的信息内容,提取出来.最后在APP中做统计.我是真的不会.快急死了.网上搜了半天,还是没有头绪.到现在都无从下手. 解决方案