欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android自动获取输入短信验证码库AutoVerifyCode详解

程序员文章站 2022-06-11 09:36:57
一、简介 android的短信验证码自动输入库,内嵌自动申请权限,兼容性高,支持多项配置。 短信验证码长度 验证码类型(大写字母、小写字母、大小写字母、数字、数字字母...

一、简介

android的短信验证码自动输入库,内嵌自动申请权限,兼容性高,支持多项配置。

短信验证码长度
验证码类型(大写字母、小写字母、大小写字母、数字、数字字母)
短信内容过滤
发送者号码过滤
短信权限回调,失败重新操作等等
消息回调,可自行处理

github地址: https://github.com/tpnet/autoverifycode

Android自动获取输入短信验证码库AutoVerifyCode详解

二、使用

2.1 最简单的使用

适用在验证码为数字,而且验证码为4-6位。

autoverifycode.getinstance()
    .with(mainactivity.this)
    .into(r.id.et_code) //要输入的编辑框
    .start();  //开始

2.2 多种属性配置

/**
  * 多种属性设置
  * @param v
  */
 public void complex(view v){
  autoverifycodeconfig config = new autoverifycodeconfig.builder()
    .codelength(6) // 验证码长度
    .smscodetype(autoverifycodeconfig.code_type_number) //验证码类型
    .smssenderstart("650") // 验证码发送者号码的前几位数字
    .smssender("6505551212") // 验证码发送者的号码
    .smsbodystartwith("【守护app】") // 设置验证码短信开头文字,固定可以设置
    .smsbodycontains("重置") // 设置验证码短信内容包含文字,每个功能包含不一样,例如注册、重置密码
    .build();

  autoverifycode.getinstance()
    .with(mainactivity.this)
    .config(config) //验证码选项配置
    .smscallback(new messagecallback()) //短信内容回调
    .permissioncallback(new percallback()) //短信短信回调
    .inputcompletecallback(new oninputcompletelistener() {
     @override
     public void oninputcomplete(string text) {
      //自动输入完毕,可以进行登录等等操作
      log.e("@@","自动输入验证码完成"+text);

     }
    })
    .into((edittext) findviewbyid(r.id.et_code)) //要输入的view
    .start();  //开始
 }



 /**
  * 获取短信回调接口
  * 
  */
 class messagecallback extends smscallback{
  @override
  public void ongetcode(string code) {
   log.e("@@","验证码为:"+code);
  }

  @override
  public void ongetmessage(string mess) {
   log.e("@@","短信内容为:"+mess);

  }

  @override
  public void ongetsender(@nullable string phonenumber) {
   log.e("@@","发送者为:"+phonenumber);

  }
 }


 class percallback implements permissioncallback{

  @override
  public void onsuccess() {
   //获取短信权限成功
   log.e("@@","获取短信权限成功:");
  }

  @override
  public boolean onfail() {
   //获取短信权限失败
   toast.maketext(mainactivity.this,"拒绝获取短信权限",toast.length_short).show();
   log.e("@@","获取短信权限失败,返回真则重试获取权限,或者你自己手动获取了之后再返回真也行");

   return false;
  }
 }

2.3 释放

因为一般只用一次,所以在页面销毁的地方释放内存。

@override
 protected void ondestroy() {
  super.ondestroy();
  //因为一般只用一次,所以页面销毁就释放。
  autoverifycode.getinstance().release();
 }


三、原理

主要利用两种方法获取短信

短信数据库监听: 见smsobserver
短信广播监听: 见smsreceiver

然后利用service实现这两种方法。注释都在代码上面了,挺简单的。 就不详细讲了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。