栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android 短信验证码自动填写

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android 短信验证码自动填写

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;



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 {
    
    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);


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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/158431.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号