Android 短信验证码自动填写
2019/7/7 20:36:57
本文主要是介绍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; /** * 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);
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
这篇关于Android 短信验证码自动填写的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-18android.permission.read_media_video
- 2024-01-18android_getaddrinfo failed eai_nodata
- 2024-01-18androidmo
- 2024-01-15Android下三种离屏渲染技术
- 2024-01-09Android 蓝牙使用
- 2024-01-06Android对接华为AI - 文本识别
- 2023-11-15代码安全之代码混淆及加固(Android)
- 2023-11-10简述Android语音播报TTS
- 2023-11-06Android WiFi工具类
- 2023-07-22Android开发未来的出路