Android 短信验证码自动填写

成都创新互联成立10多年来,这条路我们正越走越好,积累了技术与客户资源,形成了良好的口碑。为客户提供成都网站设计、成都做网站、网站策划、网页设计、空间域名、网络营销、VI设计、网站改版、漏洞修补等服务。网站是否美观、功能强大、用户体验好、性价比高、打开快等等,这些对于网站建设都非常重要,成都创新互联通过对建站技术性的掌握、对创意设计的研究为客户提供一站式互联网解决方案,携手广大客户,共同发展进步。
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);
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!