首页 > 系统 > Android > 正文

Android 短信验证码自动填写

2019-12-12 02:40:06
字体:
来源:转载
供稿:网友

Android 短信验证码自动填写

1.自定义Observer监听短信数据库变化(注意添加短信权限)

import android.app.Activity;import android.content.ContentResolver;import android.database.ContentObserver;import android.database.Cursor;import android.net.Uri;import android.os.Handler;import android.text.TextUtils;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * Created by 001 on 17/3/22. */public class SmsObserver extends ContentObserver {  public static final String SMS_URI_INBOX = "content://sms/inbox";  private Activity activity = null;  private String smsContent = "";  private SmsListener listener;  public SmsObserver(Activity activity, Handler handler, SmsListener listener) {    super(handler);    this.activity = activity;    this.listener = listener;  }  @Override  public void onChange(boolean selfChange) {    super.onChange(selfChange);    Cursor cursor = null;    // 读取收件箱中含有某关键词的短信    ContentResolver contentResolver = activity.getContentResolver();    cursor = contentResolver.query(Uri.parse(SMS_URI_INBOX), new String[] {            "_id", "address", "body", "read" }, "body like ? and read=?",        new String[] { "%关键词%", "0" }, "date desc");    if (cursor != null) {      cursor.moveToFirst();      if (cursor.moveToFirst()) {        String smsbody = cursor            .getString(cursor.getColumnIndex("body"));        String regEx = "[^0-9]";        Pattern p = Pattern.compile(regEx);        Matcher m = p.matcher(smsbody.toString());        smsContent = m.replaceAll("").trim().toString();        if (!TextUtils.isEmpty(smsContent)) {          listener.onResult(smsContent);        }      }    }  }  /*   * 短信回调接口   */  public interface SmsListener {    /**     * 接受sms状态     *     * @Title: onResult     */    void onResult(String smsContent);  }}

2.使用:

SmsObserver smsObserver = new SmsObserver(this, new Handler(), new SmsObserver.SmsListener() {      @Override      public void onResult(String smsContent) { //根据需求写 //如:editText.setText(smsContent);      }    });this.getContentResolver().registerContentObserver(Uri.parse("content://sms/"), true, smsObserver);

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表