Android笔记(五十一) 短信验证码集成——mob平台

官方网站:www.mob.com

注册帐号,下载SDK,导入SDK就不说了,主要写一下简单集成如何使用,以后忘记了也可以翻着看看。

详细的可以参考官方文档:

  http://wiki.mob.com/android-%E7%9F%AD%E4%BF%A1sdk%E6%93%8D%E4%BD%9C%E5%9B%9E%E8%B0%83/

  http://wiki.mob.com/sms-android-%E6%97%A0gui%E6%8E%A5%E5%8F%A3%E8%B0%83%E7%94%A8/

  步骤大致可以分为:

看代码:

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="cn.lixyz.records"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 为SMSDK添加的权限 -->
    <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.GET_TASKS" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-sdk
        android:minSdkVersion="19"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="cn.lixyz.records.activity.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="cn.lixyz.records.activity.RegisterActivity" />
        <activity android:name="cn.lixyz.records.activity.IndexActivity" />
        <activity
            android:name="com.mob.tools.MobUIShell"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:windowSoftInputMode="stateHidden|adjustResize" />
    </application>

</manifest>

RegisterActivity.java

package cn.lixyz.records.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import cn.lixyz.records.R;
import cn.smssdk.EventHandler;
import cn.smssdk.SMSSDK;

public class RegisterActivity extends Activity implements OnClickListener {

    private Button bt_reg_getauthcode, bt_reg_sumbit;
    private EditText et_reg_phone, et_reg_authcode, et_reg_password, et_reg_againpass;

    // 用于发送message,表示更改按钮上的倒计时
    public static final int CHANGE_TIME = 100;
    // 用户发送message,表示可以重新获取验证码
    public static final int AGAIN_GET_AUTHCODE = 200;

    int i = 30;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

        initView();

        SMSSDK.initSDK(this, "bd5d05d61170", "6781d356bb5adbe868ecea6bb0d31556");

        EventHandler eventHandler = new EventHandler() {
            @Override
            public void afterEvent(int event, int result, Object data) {
                Message msg = new Message();
                msg.arg1 = event;
                msg.arg2 = result;
                msg.obj = data;
                handler.sendMessage(msg);
            }
        };
        // 注册回调监听接口
        SMSSDK.registerEventHandler(eventHandler);

        bt_reg_getauthcode.setOnClickListener(this);
        bt_reg_sumbit.setOnClickListener(this);
    }

    private void initView() {
        bt_reg_getauthcode = (Button) findViewById(R.id.bt_reg_getauthcode);
        bt_reg_sumbit = (Button) findViewById(R.id.bt_reg_sumbit);
        et_reg_phone = (EditText) findViewById(R.id.et_reg_phone);
        et_reg_authcode = (EditText) findViewById(R.id.et_reg_authcode);
        et_reg_password = (EditText) findViewById(R.id.et_reg_password);
        et_reg_againpass = (EditText) findViewById(R.id.et_reg_againpass);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.bt_reg_getauthcode:
            sendAuthCode();
            break;

        case R.id.bt_reg_sumbit:
            registe();
            break;
        }
    }

    // 注册方法
    private void registe() {
        String inputAuthCode = et_reg_authcode.getText().toString();
        String password = et_reg_password.getText().toString();
        String str = et_reg_againpass.getText().toString();
        if (str.equals(password)) {
            SMSSDK.submitVerificationCode("86", et_reg_phone.getText().toString(), inputAuthCode);
        } else {
            Toast.makeText(getApplicationContext(), "您的密码输入不一致", Toast.LENGTH_SHORT).show();
        }
    }

    // 发送验证码
    private void sendAuthCode() {
        // 获取用户输入的手机号
        String phoneNumber = et_reg_phone.getText().toString();
        // 请求获取验证码
        SMSSDK.getVerificationCode("86", phoneNumber);
        // 将获取验证码按钮设置为不可点击
        bt_reg_getauthcode.setClickable(false);
        // bt_reg_getauthcode.setText("重新发送(" + i + ")");
        new Thread(new Runnable() {
            @Override
            public void run() {
                // 循环30秒,用于更新按钮上的倒计时
                for (; i > 0; i--) {
                    handler.sendEmptyMessage(CHANGE_TIME);
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
                // 30秒完成,可以重新获取验证码
                handler.sendEmptyMessage(AGAIN_GET_AUTHCODE);
            }
        }).start();

    }

    Handler handler = new Handler() {
        public void handleMessage(Message msg) {
            if (msg.what == CHANGE_TIME) {
                bt_reg_getauthcode.setText("重新发送(" + i + ")");
            } else if (msg.what == AGAIN_GET_AUTHCODE) {
                bt_reg_getauthcode.setClickable(true);
                bt_reg_getauthcode.setText("获取验证码");
                i = 30;
            } else {
                int event = msg.arg1;
                int result = msg.arg2;
                Object data = msg.obj;
                Log.d("TTTT", "event=" + event + ",result=" + result);
                // 如果等于-1,表示事件执行成功
                if (result == -1) {
                    if (event == 3) {
                        Toast.makeText(getApplicationContext(), "提交验证码成功", Toast.LENGTH_SHORT).show();
                        Intent intent = new Intent(RegisterActivity.this, MainActivity.class);
                        startActivity(intent);
                    } else if (event == 2) {
                        Toast.makeText(getApplicationContext(), "验证码已经发送", Toast.LENGTH_SHORT).show();
                    }
                } else if (result == 0) {
                    if (event == 3) {
                        Toast.makeText(getApplicationContext(), "验证码错误,请检查", Toast.LENGTH_SHORT).show();
                    }
                }
            }
        };
    };

    protected void onDestroy() {
        SMSSDK.unregisterAllEventHandler();
    };
}

activity_register.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/et_reg_phone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:hint="输入您的手机号" />

        <Button
            android:id="@+id/bt_reg_getauthcode"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="3"
            android:text="获取验证码" />
    </LinearLayout>

    <EditText
        android:id="@+id/et_reg_authcode"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="输入您收到的验证码" />

    <EditText
        android:id="@+id/et_reg_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:hint="请输入您的密码"
        android:password="true" />

    <EditText
        android:id="@+id/et_reg_againpass"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:hint="重复您的密码"
        android:password="true" />

    <Button
        android:id="@+id/bt_reg_sumbit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="注     册" />

</LinearLayout>

  

时间: 2025-01-17 02:35:36

Android笔记(五十一) 短信验证码集成——mob平台的相关文章

ShareSDK短信验证码集成详细步骤

1.这里使用的是ShareSDK网的短信验证码SDK  官网 http://www.mob.com 先去http://www.mob.com/#/reg 注册成为开发者 填写相应的信息,邮箱账号,然后激活完成 创建好账户激活之后 2.登陆,点击页面右上角的头像按钮—>进入后台. 图1 3.点击进入后台然后出现的是这样的界面 图2 我这里点击已经创建过一个了显示的是图2,如果没有创建过应用,我们这里显示的是 图3样式的, 然后根据图四填写相应的内容,我们这里是短信验证码选择第二个 Security

sharesdk短信验证码的集成

在ShareSDK官网http://mob.com/注册并创建Android应用.申请APP_key,下载SDK等 根据官网开发文档导入SDK,目录结构如下 将以上文件按需放入Android Studio项目所要使用SMSSDK的Module所在的Libs里面,再在Module的build.gradle里面将libs加入仓库(repositories),然后添加依赖(dependencies )示例如下: repositories{ flatDir{ dirs 'libs' //就是你放aar的

安卓CountDownTimer实现全民夺宝抢购倒计时和短信验证码倒计时

在sina里看到了什么全民夺宝的链接,然后忍不住1元的诱惑被坑了10多块,什么都没有抽到,但是还是有人抽到了不知道是不是坑爹的,然后也就动手做一下倒计时的功能. 先看全民夺宝: 说起这个功能是不是感觉so easy,然后就以此来搞2个倒计时效果,顺便也学习一下CountDownTimer的使用. 哈哈,看看今天实现的效果图: 回顾 常用的倒计时方式 方法一 Timer与TimerTask(Java实现) public class timerTask extends Activity{ priva

短信验证码接收平台

一.验证码是什么     所谓的验证码又称校验码.附加码,常祖政和卢晓倩在<计算机安全与维护>期刊中共同就是将一串随机产生的数字或符号,生成一幅图片, 图片里加上一些干扰象素,由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能. 二.短信验证证码接收平台干什么用的     短信验证证码接收平台可以在注册网站账号的时候,如果需要短信验证码的,此时就可以使用短信验证码接收平台的服务. 三.短信验证码接收平台的特点     如今的互联网隐私被人们看的越来越重要,但是大多

Android开发:app工程集成mob短信验证码功能

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

Android之短信验证码

我们今天所使用的方案只是android手机设备集成短信验证码功能的方案之一. 我们所采用的方案是使用聚合数据的短信验证sdk. 程序的界面如下所示: 实现步骤: 1.到聚合数据官网上申请短信验证SDK数据,生成AppKey,如下图所示: 2.配置工程,把相关的sdk库导入到Project中去,: 3.配置AndroidManifest.xml文件,在Application节点中加入以下代码: <meta-data android:name="JUHE_KEY" android:v

android_app开发集成mob短信验证码功能

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

Android获取短信验证码

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

Android开发之属于你的短信验证码(一)

不飞则已,一飞冲天;不鸣则已,一鸣惊人---------司马迁 最近工作又有新需求,要求用户在注册的时候需要通过手机验证码,这样做的目的是防止用户通过一个邮箱来随便的注册,那么好,今天我们就 一起来学习一下Android中的短信验证码这一个知识点.如有谬误,欢迎批评指正,如有疑问欢迎留言,谢谢 在说这个知识点前,我们首先来了解下聚合数据 一.聚合数据介绍 聚合数据是一家国内最大的基础数据API提供商,专业从事互联网数据服务.免费提供从天气查询.空气质量.地图坐标到金融基金.电商比价.违章查询等各