Android studio如何实现短信验证_神奇的swufer的博客-程序员宅基地

技术标签: android studio  短信验证 mob.com  

  现在更多的App的抛弃了原有的密保问题的验证模式,而是更多的采用短信验证的方式,今天来教一下大家如何实现短信验证。

   首先,网络上为我们提供短信验证的网站为:www.mob.com,登录该网站你会发现其为我们提供了很多功能,其中最主要的几个分别是:shareSDK,短信验证,mobLink等,我们今天要学习的是短信验证功能。

1.在web.com中创建账号:

   点击页面下方短信验证码SDK-->点击立即使用-->注册账号。

后会进入下面页面:



2.下载短信验证SDK,并且完成短信验证的相关注册,下载页面如下:



3.点击下载后获得sdk,得到下列文件:


4.进入到我们的android工程的文件夹里,我的是AndroidStudioProjects,找到app/libs文件夹,然后放入刚刚下载的文件中的SMSSDK中的jar和aar文件:



5,.进入AndroidStudio的工程中,在Module的build.gradle里面将libs加入仓库(repositories),然后添加依赖(dependencies )示例如下:

repositories{
    flatDir{
        dirs 'libs'
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.0.1'
    testCompile 'junit:junit:4.12'
    compile 'mysql:mysql-connector-java:5.1.16'
    compile name: 'SMSSDK-2.1.4', ext: 'aar'
    compile name: 'SMSSDKGUI-2.1.4', ext: 'aar'
    compile files('libs/BaiduLBS_Android.jar')
}


6.因为我们的短信验证业务涉及到很多权限,所以在AndroidManifest.xml中添加权限:

?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.pc.paijiajiao">
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_logo"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="uQDsPg1DGm0d1oehxcEHwZGMOlicYiiM" />


7.在添加了权限后,开始写实现我们短信验证的代码:

 (1).xml文件(shortmessage):

?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_short_message"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.pc.paijiajiao.ShortMessage">

    <Button
        android:text="注册和绑定手机"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/message_iden"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />
</RelativeLayout>

 (2).java代码:

public class ShortMessage extends AppCompatActivity {

    Button  message_iden;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_short_message);
        //初始化
        SMSSDK.initSDK(this, "1cdab34199d58", "1f4f73a0b24b1778b900c20727872357");
        message_iden=(Button)findViewById(R.id.message_iden);
        message_iden.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                RegisterPage registerPage=new RegisterPage();
                //注册回调事件
                registerPage.setRegisterCallback(new EventHandler(){
                    @Override
                    public void afterEvent(int event, int result, Object data){
                        //判断结果是否已经完成
                        if(result==SMSSDK.RESULT_COMPLETE){
                            //获取数据data
                            HashMap<String,Object> maps=(HashMap<String, Object>)data;
                            //国家
                            String country=(String)maps.get("country");
                            //手机号
                            String phone=(String)maps.get("phone");
                            submitUserInfo(country,phone);
                        }

                    }
                });
                //显示注册界面
                registerPage.show(ShortMessage.this);
            }
        });
    }
    public void submitUserInfo(String country, String phone){
        Random r=new Random();
        String uid=Math.abs(r.nextInt())+"";
        String nickName="lexuepai";
        SMSSDK.submitUserInfo(uid,nickName,null,country,phone);
    }
}


 SMSSDK.initSDK(this, "1cdab34199d58", "1f4f73a0b24b1778b900c20727872357");中的两个代码是在注册时分配的,写入即可。

完成后执行就能实现短信验证了。谢谢大家


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38256924/article/details/71775602

智能推荐

easyui-datagrid合并单元格和页脚-程序员宅基地

1 $("#grid").datagrid('loadData', 2 data.pagingData); 3 4 var rows = data.pagingData.rows; 5 for (va..._datagrid footer 列合并

stdarg.h 详解-程序员宅基地

stdarg.h简介 stdarg 由 standard argument 简化而来,该头文件的主要目的为让函数能够接受可变参数。该头文件中声明了一个类型 va_list 和三个宏函数 va_start,va_arg 和 va_end。数据类型(Types): 数据类型 va_list 用来保存宏 va_arg 与宏 va_end 所需...

vmware中给虚拟机安装tools_virtualbox中怎么安装net-tools工具-程序员宅基地

1.打开你需要安装VMware Tools的虚拟机,点击【虚拟机】–>【安装VMwareTools】,弹出如下图所示的提示框2.复制3.点击计算机–系统文件–home,然后粘贴。4.关闭之前的窗口,点击鼠标右键,选择在终端打开。5.我们输入命令cd /home 回车 然后在ll查看home下的文件,这时我们可以看到home下的VMware Tools。6.输入tar zxf VM..._virtualbox中怎么安装net-tools工具

windows系统认识_con aux prn nul com0-9 lpt0-9-程序员宅基地

windows系统认识认识菜单1.功能菜单或主菜单2.快捷菜单或右键菜单、右键快捷菜单(鼠标右键点击出现的菜单)弹出下级菜单 置灰 弹出对话框(带有...) 单选标记 (只能选择一个) 复选标记(可以多重选择)文件和文件夹1.文件名的组成(名称(含路径)、扩展名(后坠)):文件名 文件图标 扩展名2.文件名的长度:最长256个字符(含路径),根目录下255(去掉c:\之后计算的字符长度,盘符不计算)3.文件夹也称目录,存放文件夹和文件4.文件名特殊.._con aux prn nul com0-9 lpt0-9

IEDA中依赖管理器之maven helper_maven-helper紫色代表什么-程序员宅基地

  时间:2019.12.09.20.43  使用IEDA创建maven工程时,当项目需要的依赖较多时,会显得比较杂乱,博主推荐一个管理依赖的idea插件,使用方法如下打开File---->settings---->Plugins ,输入 maven helper 将插件安装重启 IEDA 即可重启后打开依赖,发现在左下角多了一个 dependencies ,如下设置可管理依赖..._maven-helper紫色代表什么

Qt/C++编写的项目作品32-定制化安装包工具(雨田哥作品)-程序员宅基地

一、功能特点自定义打包界面大家基本用的都是NSIS,INNO等打包工具去制作。但是Qt作为专业的界面定制,专业的跨平台框架。我觉得Qt很好也很强大,我便写了一个这样的打包工具,支持自定义安装,卸载Qt界面自定义。支持安装,卸载自定义Qt界面编写。一键式脚本build.bat,生成安装包EXE。兼容XP系统。支持配置文件填充安装包信息:指定应用程序中文名称,指定生成安装包的名称,指定版本号,指定发布者,安装图标,卸载图标。二、效果图三、体验地址体验地址:https://pan.ba

随便推点

Hadoop MapReduce工作原理-程序员宅基地

Hadoop的MapReduce工作原理 MapReduce 角色•Client :作业提交发起者。•JobTracker: 初始化作业,分配作业,与TaskTracker通信,协调整个作业。•TaskTracker:保持JobTracker通信,在分配的数据片段上执行MapReduce任务。提交作业•在作业提交之前,需要对作业进行配置•程序代码,主要是

数学教材推荐_偏微分方程经典教材-程序员宅基地

数学书籍推荐引言一 数学分析二 高等数学三 高等代数四 线性代数五 解析几何六 概率论七 常微分方程八 偏微分方程九 数学物理方程(数学物理方法)十 复变函数十一 实变函数十二 泛函分析十三 高等几何十四 微分几何十五 拓扑学十六 近世代数十七 离散数学十八 组合数学十九 数值分析二十 数学建模二十一 数学史附录 数学软件1)打引号或书名号的课程名词被认为是指书籍或课程名,否则是指这一数学学科类(领域)。2)_偏微分方程经典教材

侧边导航栏-程序员宅基地

import React, { Component } from 'react'import PropTypes from 'prop-types'import classnames from 'classnames'import { Link, IndexLink } from 'dva/router'import { Icon, intl, Truncate } from '@ali/..._侧边导航栏

细思极恐 从摩拜和ofo投资人的互怼大战中我们学到了什么-程序员宅基地

作者 | 柠檬酱责编 | 薄荷茶微信公众号ID | csdn_iot今年的共享单车大战中,摩拜和ofo似乎是实力最盛的两家,前者凭借智能锁、可定位、质量好的特点受到不少青睐,而ofo小黄车则因为数量多,押金少而俘获了不少人 心。”黄金车“,”彩虹车“纷纷上市,正争相闪瞎用户的眼的时候,一条朋友圈又将这共享单车双雄拉回了我们的视线。起因是ofo小黄车投资人金沙江创投合伙人朱...

仿真软件的模拟结果就一定准确吗?看看与物理计算的对比结果吧_仿真比试验更精确-程序员宅基地

软件公司往往喜欢吹捧这样的说法:计算机仿真非常接近您的产品设计在受到压力、温度、气流、振动等实际物理力作用下的行为。仿真有助于优化设计,减少所需的物理原型数量并提高上市速度。这些说法是真的吗?当然,测试产品的耐用性,强度和安全性至关重要,尤其是在受到严格监管的行业中。在开发过程的早期预测产品故障可能会节省数百万美元,并使产品的可靠性和功效等级跃居首位。SOLIDWORKS对软件产品进行了许多全面的测试,以确保它们满足甚至超出客户的期望。下面我就分享一下有关SOLIDWORKS Plastics_仿真比试验更精确

Oracle11G_数据字典和动态性能视图-程序员宅基地

数据字典:数据库的核心,记录了数据库最基本信息;包括基本表(名称以$结尾,属于sys用户,不允许修改)、视图(便于对基本表的使用);动态性能视图:存放数据库的主要活动信息;以V$开头;转载于:https://blog.51cto.com/2036000/2379808..._oracle11g动态表

推荐文章

热门文章

相关标签