android发送短信验证码并自动获取验证码填充文本框 (2)

这里我们就把验证码放到剪切板了,当然你也可以直接把它填充到文本框中

private void getCode(Context context, String body) {         //获取剪贴板管理器:         ClipboardManager cm = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);         Pattern pattern1 = Pattern.compile("(\\d{6})");//提取六位数字         Matcher matcher1 = pattern1.matcher(body);//进行匹配         Pattern pattern2 = Pattern.compile("(\\d{4})");//提取四位数字         Matcher matcher2 = pattern2.matcher(body);//进行匹配         if (matcher1.find()) {//匹配成功             String code = matcher1.group(0);             // 创建普通字符型ClipData             ClipData mClipData = ClipData.newPlainText("Label", code);             // 将ClipData内容放到系统剪贴板里。             cm.setPrimaryClip(mClipData);             Toast.makeText(context, "验证码复制成功", Toast.LENGTH_SHORT).show();             Log.d(TAG, "onReceive: " + code);         } else if (matcher2.find()) {             String code = matcher2.group(0);             // 创建普通字符型ClipData             ClipData mClipData = ClipData.newPlainText("Label", code);             // 将ClipData内容放到系统剪贴板里。             cm.setPrimaryClip(mClipData);             Toast.makeText(context, "验证码复制成功", Toast.LENGTH_SHORT).show();             Log.d(TAG, "onReceive: " + code);         } else {             Toast.makeText(context, "未检测到验证码", Toast.LENGTH_SHORT).show();             Log.d(TAG, "onReceive: " + "未检测到验证码");         }     }

在这里通过正则表达式匹配出短信内容中的验证码,因为验证码大多数为4位或者6位,所以在这里为了简化就直接进行了4位验证码和6位验证码的判断 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgyjjs.html