Android如何通过手机自动获取短信验证码

本文实例为大家分享了Android实现手机自动获取短信验证码功能,供大家参考,具体内容如下

1、短信监听广播

2、读取短信内容

3、截取短信内容【可以 reg截取】

4、填写至相应控件

PS:DevStore测试没有获取到验证码

源码片段

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();
     Log.d("logo", "message  " + message);
     // 短息的手机号。。+86开头?
     String from = sms.getOriginatingAddress();
     Log.d("logo", "from  " + from);
     Time time = new Time();
     time.set(sms.getTimestampMillis());
     String time2 = time.format3339(true);
     Log.d("logo", from + " " + message + " " + time2);
     strContent = from + " " + message;
     handler.sendEmptyMessage(1);
     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;
 }
}</pre-->

文章末尾为大家在分享两个专题,供大家参考:

《PHP验证码大全》

《ASP.NET验证码大全》

以上就是Android通过手机自动获取短信验证码的详细代码,希望对大家实现手机自动获取短信验证码有所帮助。

时间: 2016-03-02

关于Android短信验证码的获取的示例

最近突然想起App里面的登录模块,有可以使用手机号码注册的功能,感觉此功能在大多款App里面都比较常见,因此在此做一个记录,顺便将之前踩过得坑在此记录一下,之前一直没有在简书上面写过文章,感觉慌慌哒.好了,下面开始记录下我的过程. 先放上最终的效果图: 我去,这上传的效果也不是太好,各位看官请见谅,不过基本的功能还是有了的,不妨碍后面的阅读. 下面我将一步步介绍如何实现这个功能的. 首先我使用的是容联云平台的短信验证,做这个之前需要先注册一个开发者账号,然后下载里面的一个demo,可以它的看看介

Android实现短信验证码自动填写功能

本实例为大家分享了Android实现短信验证码自动填写功能,供大家参考,具体内容如下 实现思路很简单: 1.在需要输入验证码的Activity代码注册监听短信的广播 2.拦截短信,获取其中的验证码 3.回写到EditText private SmsReciver smsReciver = new SmsReciver(); /** 收到短信Action **/ String ACTION_SMS_RECIVER = "android.provider.Telephony.SMS_RECEIVED

Android用 Mob 实现发送短信验证码实例

和室友参加的互联网大赛要做一个 APP,涉及到用户的登录注册,于是上网找了许多资料,其中有阿里大于,网易云等等,阿里大于的客服给我说他们不支持 Android,网易云还要拍手持身份证的照片,而且这两个都收费,还麻烦,于是找了一个既简单有免费的,叫做 Mob,官网如下 Mob 官网 官方文档看了很多,还是觉得写的不好,于是自己写一篇. 注册账号 在 Mob 官网右上角点击注册,依次填入信息,其中公司一栏可以随便填 添加应用 登录后,点击 SecurityCodeSDK - 立即使用,Mob 会提示

Android实现短信验证码获取自动填写功能(详细版)

现在的应用在注册登录或者修改密码中都用到了短信验证码,那在android中是如何实现获取短信验证码并自动填写的呢? 首先,需要要在manifest中注册接收和读取短信的权限: <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> <uses-permission android:name="android.permission.READ_

Android实现短信验证码自动拦截读取功能

知识准备:  1.观察者模式的理解[文章稍后来到~~]  2.Android的Cursor使用[Android基础]  3.正则表达式使用[Java基础]  4.Handler使用[Android基础] 代码整理: MainActivity.java import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.suppo

Android获取短信验证码的实现方法

先给大家展示下效果图,如果感觉不错,请参考实现思路详解 Android开发中关于短息验证码的设计层出不穷,越来越多的应用为了更好的提高软件的安全性,开始使用通过服务器向用户发送验证码的方式,来保护用户个人信息的安全性.无论是用户注册时的信息验证还是当用户发出找回密码请求时的短信验证,他们的工作原理大致上是一致的,因为项目的需要研究了一下关于这方面的知识,本篇我将带领大家一起实现这一当下流行的设计方案. 众所周知,短信验证需要服务器端生成一个验证码,然后发送到用户输入的手机上,这个过程需要服务器主

Android实现自动提取短信验证码功能

本文实例讲解了Android自动提取短信验证码解决方案,分享给大家供大家参考,具体内容如下 主要功能及优点 1.收到验证码短信后,自动提取短信中的验证码填写到相应输入框 2.可指定一个号码,只读取与他有关短信,避免提取来源错误 3.利用正则表达式,可匹配各种类型验证码 模块集成关键步骤     将auto_getcode_demo中src包里的SMSContentObserver类复制到你的项目src包中 在SMSContentObserver中:    修改正则表达式内容来匹配自己想要获取的字

Android&#8203;短信验证码倒计时验证的2种常用方式

前言 ​本文主要介绍的是短信验证码功能,这里总结了两种常用的方式,可以直接拿来使用. 看图 计时器 说明:这里的及时从10开始,是为了演示的时间不要等太长而修改的. 方法如下 1.第一种方式:Timer /** * Description:自定义Timer * <p> * Created by Mjj on 2016/12/4. */ public class TimeCount extends CountDownTimer { private Button button; //参数依次为总时

Android获取和读取短信验证码的实现方法

现如今,验证码在Android的客户端还是非常普遍的.通过手机账号和验证码直接去注册应用账户的信息.很多应用都以这种方式来完成注册.简单的介绍一下吧. Android获取短信验证码还是比较简单的,通过Mob官网提供的ShareSDK,调用其中内部的方法,就可以获取到短信的验证码了.提供一下Mob的官网地址.http://www.mob.com/#/在官网上注册相关的信息之后,下载相关的jar包和.so文件就可以实现获取短信验证码了(2.0之前的版本都需要下载jar包和 .so文件,而现在的2.2

Android中用Bmob实现短信验证码功能的方法详解

这篇文章主要介绍发送验证码和校验验证码的功能,用到一个第三方平台Bmob,那Bmob是什么呢?Bmob可以开发一个云存储的移动应用软件,他提供了大量的标准的API接口,根据需要接入相关服务,开发者可以更加专注于应用的开发,让产品交付更快速,验证码功能就是其中一个. 一.跟其他第三方一样,我们开发之前要做一些准备工作. 1.首先,去官网注册一个帐号:http://www.bmob.cn/: 2.然后就可以创建应用了:具体怎么做Bmob说得很清楚了(官方操作介绍),如果你不想看,我简单说一下:点击右

Android实现自动填充短信验证码功能

前言 短信验证码获取并自动填写现在已经成为一个人性化App的标配了,这篇文章将实现一个短信验证码获取并自动填写的demo.其实就是读取指定号码的短信并提取出验证码,然后赋值给EditText显示. demo效果图: 读取短信 Android系统在接受到一条短信的时候会发出一条Action为android.provider.Telephony.SMS_RECEIVED的有序广播,因此我们读取短信的验证码只需要监听这个广播然后提取出短信中的验证码即可,如: /** * Created by 程龙 o

Android开发工程中集成mob短信验证码功能的方法

一.前言 现在的app基本上都需要用到短信功能,注册时或者有消息通知时需要给用户发送一条短信,但是对于个人开发者来说,去买第三方的短信服务实在是有点奢侈,很好的是mob为我们提供了免费的短信验证码服务功能,我不是打广告,的确觉得这项服务很不错.那么下面就简单讲一下如何在自己的工程里集成mob的短信功能,其实整个流程并不复杂,只是个人觉得mob的官方文档有点小乱,官方Demo也有点小复杂,同时有一些细节地方容易被忽视,也会导致一些问题. PS:太喜欢mob的logo了. 二.实现过程 本篇只涉及A

Android利用CursorLoader实现短信验证码自动填写

概述 Android上实现短信验证码自动填写,常用的有两种方式.一种是利用BroadCastReceiver,还有一种是监听手机上短信数据库的变化.利用BroadCastReceiver来实现会在一些情况下无效,最常见的就是手机上安装了具有垃圾短信拦截功能的软件的情况下,短信验证码自动填写无效.所以,现在一般会选用监听数据库内容变化的方式来实现短信验证码自动填写. 网上对于利用监听数据库内容变化来实现短信验证码自动填写的文章也很多,主要分为一下步骤: 1. 继承ContentObserver实现

Android实现自动填充短信验证码

本文实例为大家分享了Android自动填充短信验证码的具体代码,供大家参考,具体内容如下 短信验证码是大部分软件里面都存在的功能,同时为了避免用户自己输入导致的繁琐操作,有一部分app设计者将其设置成了自动填充的方式,方便用户操作那么这种方式是什么实现的呢. 利用广播接收器来拦截短信获取其中匹配的内容,提供回掉,将短信内容暴露到activity中实现自动填充 首先我们要实现一个广播接收器 package com.wquant.weilt.reciver; import java.util.reg

Android自定义Chronometer实现短信验证码秒表倒计时功能

本文实例为大家分享了Chronometer实现倒计时功能,Android提供了实现按照秒计时的API,供大家参考,具体内容如下 一.自定义ChronometerView 继续自TextView 主要原理:先设置一个基准倒计时时间mBaseSeconds,内置handler 每隔1s发送一个空消息,mRemainSeconds--,同时刷新界面视图,回调给外部调用者,只到为零.外部调用者可通过start()/pause()/stop()来控制计时器的工作状态. 可以app中发送短信验证码的场景为例

Android中监听短信的两种方法

1.监听广播 缺点,因为优先级的原因可能接收不到. 代码: public static final String TAG = "ImiChatSMSReceiver"; public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED"; public void onReceive(Context context, Intent intent) { if

Android短信验证码(用的Mob短信验证)

Android短信验证码功能,供大家参考,具体内容如下 1.参考资料 Mob网站:http://www.mob.com/ Mob在Github上的例子:https://github.com/MobClub/SMSSDK-for-Android 教程:Mob短信验证的具体使用 教程的源代码:  http://git.oschina.net/lizhanqi/MobSMSDemo Dialog教程:Android Dialog对话框 定时器教程:Android 实现定时器的四种方式 2.前期准备 (