package com.wuwang.demo;
import android.content.ContentValues;
import android.content.Context;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.util.Log;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* <p>Author : Wuwang </p>
* <p>Company : ZhiJiaKeJi</p>
* <p>Date :2016-07-21 09:16</p>
* <p>Description : 验证码自动填充</p>
*/
public class VerificationCodeAutoFill implements LoaderManager.LoaderCallbacks<Cursor> {
private Context context;
private OnNewMessageListener listener;
private String msgRegular;
public VerificationCodeAutoFill(Context context){
this(context,null,null);
}
public VerificationCodeAutoFill(Context context,OnNewMessageListener listener){
this(context,listener,null);
}
/**
* @param context
* @param listener 新短信监听
* @param msgRegular 对新短信处理的正则表达式,如果为空,则不进行处理
*/
public VerificationCodeAutoFill(Context context, OnNewMessageListener listener,String msgRegular){
this.context=context;
this.listener=listener;
this.msgRegular=msgRegular;
}
public VerificationCodeAutoFill registerTo(int id,LoaderManager manager){
manager.initLoader(id,null,this);
return this;
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(context,Uri.parse("content://sms/inbox"),
new String[] { "_id", "address", "read", "body" },
" read=?",
new String[] {"0" }, "_id desc");
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
// 按id排序,如果按date排序的话,修改手机时间后,读取的短信就不准了
if (data != null && data.getCount() > 0) {
ContentValues values = new ContentValues();
values.put("read", "1"); // 修改短信为已读模式
data.moveToNext();
int smsbodyColumn = data.getColumnIndex("body");
String smsBody = data.getString(smsbodyColumn);
Log.e("wuwang",smsBody);
if(listener!=null){
listener.onNewMessage(getDynamicPassword(smsBody,msgRegular));
}
}
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
}
public interface OnNewMessageListener {
void onNewMessage(String msg);
}
private String getDynamicPassword(String str,String regular) {
if(regular==null)return str;
Pattern continuousNumberPattern = Pattern.compile(msgRegular);
Matcher m = continuousNumberPattern.matcher(str);
String dynamicPassword = "";
while (m.find()) {
System.out.print(m.group());
dynamicPassword = m.group();
}
return dynamicPassword;
}
}
//匹配四位数字的短信验证码
new VerificationCodeAutoFill(this, new VerificationCodeAutoFill.OnNewMessageListener() {
@Override
public void onNewMessage(String msg) {
//etMsg.setText(msg); //验证码填充
}
}, "\\d{4}").registerTo(1,getSupportLoaderManager());
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有