private SmsReciver smsReciver = new SmsReciver();
/** 收到短信Action **/
String ACTION_SMS_RECIVER = "android.provider.Telephony.SMS_RECEIVED";
/**
* 注册广播接受者监听短信验证码自动回写 可在onCreate()中进行注册;
*/
private void registSmsReciver() {
IntentFilter filter = new IntentFilter();
filter.addAction(ACTION_SMS_RECIVER);
// 设置优先级 不然监听不到短信
filter.setPriority(1000);
registerReceiver(smsReciver, filter);
}
/**
* 短信广播接受者 用户监听短信,自动填写验证码
*/
private class SmsReciver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Object[] objs = (Object[]) intent.getExtras().get("pdus");
for (Object obj : objs) {
yte[] pdu = (byte[]) obj;
SmsMessage sms = SmsMessage.createFromPdu(pdu);
// 短信的内容
String message = sms.getMessageBody();
Log.d("log", "message " + message);
// 短息的手机号,如果你们公司发送验证码的号码是固定的这里可以进行一个号码的校验
String from = sms.getOriginatingAddress();
Log.d("log", "from " + from);
analysisVerify(message);
}
}
}
/**
* 解析短信并且回写 这里解析的是纯数字的短信,如果小伙伴的验证码包含字母的话,可用正则替换
*
* @param message
*/
private void analysisVerify(String message) {
char[] msgs = message.toCharArray();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < msgs.length; i++) {
if ('0' <= msgs[i] && msgs[i] <= '9') {
sb.append(msgs[i]);
}
}
mEtVerifyCode.setText(sb.toString());
}
@Override
protected void onDestroy() {
super.onDestroy();
// 取消短信广播注册
if (smsReciver != null) {
unregisterReceiver(smsReciver);
smsReciver = null;
}
}
filter.setPriority(1000);
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有