android 短信验证自动获取验证码

权限:

<uses-permission android:name="android.permission.RECEIVE_SMS" />

activity类

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.IntentFilter;

import android.os.Bundle;

import android.os.Handler;

import android.telephony.SmsMessage;

import android.text.TextUtils;

import android.widget.EditText;

@SuppressLint("HandlerLeak")

public class MainActivity extends Activity {

private BroadcastReceiver smsReceiver;

private IntentFilter filter2;

private Handler handler;

private EditText et;

private String strContent;

private String patternCoder = "(?<!\\d)\\d{6}(?!\\d)";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

et = (EditText) findViewById(R.id.et);

handler = new Handler() {

public void handleMessage(android.os.Message msg) {

et.setText(strContent);

};

};

filter2 = new IntentFilter();

filter2.addAction("android.provider.Telephony.SMS_RECEIVED");

filter2.setPriority(Integer.MAX_VALUE);

smsReceiver = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

Object[] objs = (Object[]) intent.getExtras().get("pdus");

for (Object obj : objs) {

byte[] pdu = (byte[]) obj;

SmsMessage sms = SmsMessage.createFromPdu(pdu);

// 短信的内容

String message = sms.getMessageBody();

// 短息的手机号

String from = sms.getOriginatingAddress();

if (!TextUtils.isEmpty(from)) {

String code = patternCode(message);

if (!TextUtils.isEmpty(code)) {

strContent = code;

handler.sendEmptyMessage(1);

}

}

}

}

};

registerReceiver(smsReceiver, filter2);

}

@Override

protected void onDestroy() {

super.onDestroy();

unregisterReceiver(smsReceiver);

}

/**

* 匹配短信中间的6个数字(验证码等)

*

* @param patternContent

* @return

*/

private String patternCode(String patternContent) {

if (TextUtils.isEmpty(patternContent)) {

return null;

}

Pattern p = Pattern.compile(patternCoder);

Matcher matcher = p.matcher(patternContent);

if (matcher.find()) {

return matcher.group();

}

return null;

}

}

时间: 2024-10-12 23:46:31

android 短信验证自动获取验证码的相关文章

Android 短信收件人自动匹配与用户输入的显示不一致

1.将号码"12345678"存为联系人Test后 2.进入短信编辑界面,在收件人一栏输入"13712345678",再切换到文字输入框,使收件人那个控件失焦,可以看到收件人立即显示为"Test",再返回去点击那个收件人,发现目标号码变成了"12345678". 3.发送信息,提示发送失败. PS:用户本来想要把短信发送到"13712345678"的,结果因为电话薄里面存了个"12345678&q

Android之短信验证

一.目标 实现Android短信验证 二.下面用一个简单的案例来完成这个功能 1.首先下载短信验证SDK 下载短信验证SDK官网地址:http://www.mob.com 找到SDK下载,在SMS里找到"SMSSDK For Android"下载, 如图: 2.下载完成之后: 将SMSSDK文件夹下的两个.jar文件和.aar文件复制到你项目的Project->app->libs目录下 如图所示: 3.在Android->Gradle Scripts->buli

Android实战简易教程-第三十九枪(第三方短信验证平台Mob和验证码自动填入功能结合实例)

用户注册或者找回密码时一般会用到短信验证功能,这里我们使用第三方的短信平台进行验证实例. 我们用到第三方短信验证平台是Mob,地址为:http://mob.com/ 一.注册用户.获取SDK 大家可以自行注册,得到APPKEY和APPSECRET,然后下载SDK,包的导入方式如截图: 二.主要代码 SMSSendForRegisterActivity.java:(获取验证码页) package com.qiandaobao.activity; import java.util.regex.Mat

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

android注册发送短信验证码并自动获取短信,截取数字验证码填充文本框. 一.接入短信平台 首先需要选择短信平台接入,这里使用的是榛子云短信平台(http://smsow.zhenzikj.com), 两分钟申请测试账号,赠送了100条测试短信. android使用java的jar包即可开发 jar下载: http://smsow.zhenzikj.com/doc/sdk.html API文档:http://smsow.zhenzikj.com/doc/java_sdk_doc.html 使用

[Android]手机短信验证功能

介绍 短信验证功能大家都很熟悉了.在很多地方都能见到,注册新用户或者短息验证支付等.短信验证利用短信验证码来注册会员,大大降低了非法注册,很大程度上提高了用户账户的安全性. 目前市面上已经有了很多提供短信验证的服务商,有收费的,也有免费的.如果是个人的开发者,用免费的是最划算的了!下面我就介绍一个免费的短信验证平台---Mob.com Mob平台提供的短信验证功能可以实现快速的验证和匹配通讯录好友功能,并且能为每个app每天提供10000条免费短信验证.很多开发者都想在自己的app中集成短信验证

[android]ShareSDK——内容分享和短信验证

前言 新版本号ShareSDK的分享和短信验证,按官网的文档,都须要加入一个<Activity></Activity>标签,而分享和短息验证的这个标签内容都一样.会冲突. 解决的方法:分享用旧版本号,短信验证用新版本号. 后面会有解决的方法. 分享 导入project见初识ShareSDK--嵌入和登陆 <span style="font-size:24px;">OnekeyShare oks = new OnekeyShare(); //全部SSO

完整的Android手机短信验证源码

短信验证功能我分两个模块来说,短信验证码的后台和代码实现短信验证码的功能. 一.短信验证码的后台      1.注册Mob账号:http://www.mob.com/#/login 2.注册成功之后,点击“头像”,进入“产品中心”,进入如下界面点击第二项添加应用.添加完应用几秒后再次进入第二项. 3.在第二步之后我们会得到两个重要的参数App key和App Secret,用于客户端和服务端的链接,创建好应用之后还会得到两个菜单选项“验证记录”和“短信设置”,“验证记录”是说我们进行短信验证之后

Android 短信验证码控件

Android 短信验证码控件,便于项目中使用统一样式,统一提示修改,个人认为挺好用的 <span style="font-size:18px;">public class SMSButton extends Button { /** 是否展示 */ private boolean mAttached; /** 发送验证码后等待的时间 */ private int delayTime = 60; /** Button 上面的文本 */ private String show

Android集成短信验证

一.注册mob账号并登陆 官网http://www.mob.com/#/ 账户:[email protected] 密码:tmy2016 二.进入短信注册后台  网址:http://dashboard.mob.com/#/sms/index 添加应用 生成应用信息 三.下载短信验证sdk   地址:http://www.mob.com/#/downloadDetail/SMS/android 解压后的文件为 四.导入 分别设置成库项目项目 右键选择properties-->Android  --