官方网站: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, "xxxxxxxxx", "xxxxxxxxxxxxxxxx"); 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>

  

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

  1. 转载:Android自动化测试- 自动获取短信验证码

    前言:android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码. 主要就是实时获取短信信息. android ...

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

    1.这里使用的是ShareSDK网的短信验证码SDK  官网 http://www.mob.com 先去http://www.mob.com/#/reg 注册成为开发者 填写相应的信息,邮箱账号,然后 ...

  3. Android学习笔记之短信验证码的获取和读取

    PS:最近很多事情都拖拖拉拉的..都什么办事效率啊!!! 还得吐槽一下移动运营商,验证码超过五次的时候,直接把我的手机号封闭.真是受够了. 学习笔记: 1.Android之如何获取短信验证码. 2.如 ...

  4. sharesdk短信验证码的集成

    在ShareSDK官网http://mob.com/注册并创建Android应用.申请APP_key,下载SDK等 根据官网开发文档导入SDK,目录结构如下 将以上文件按需放入Android Stud ...

  5. Android Studio精彩案例(五)《JSMS短信验证码功能实现》

    转载本专栏文章,请注明出处,尊重原创 .文章博客地址:道龙的博客 很多应用刚打开的时候,让我们输入手机号,通过短信验证码来登录该应用.那么,这个场景是怎么实现的呢?其实是很多开放平台提供了短信验证功能 ...

  6. SpringBoot + Spring Security 学习笔记(五)实现短信验证码+登录功能

    在 Spring Security 中基于表单的认证模式,默认就是密码帐号登录认证,那么对于短信验证码+登录的方式,Spring Security 没有现成的接口可以使用,所以需要自己的封装一个类似的 ...

  7. Android之短信验证码

    我们今天所使用的方案仅仅是android手机设备集成短信验证码功能的方案之中的一个. 我们所採用的方案是使用聚合数据的短信验证sdk. 程序的界面例如以下所看到的: 实现步骤: 1.到聚合数据官网上申 ...

  8. Android开发之短信验证码示例

    在说Android中的短信验证码这个知识点前,我们首先来了解下聚合数据 聚合数据介绍 聚合数据是一家国内最大的基础数据API提供商,专业从事互联网数据服务.免费提供从天气查询.空气质量.地图坐标到金融 ...

  9. Android获取短信验证码

    Android开发中关于短息验证码的设计层出不穷,越来越多的应用为了更好的提高软件的安全性,开始使用通过服务器向用户发送验证码的方式,来保护用户个人信息的安全性.无论是用户注册时的信息验证还是当用户发 ...

随机推荐

  1. phpexcel中文手册(转)

    首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把class ...

  2. Gan-based zero-shot learning 论文整理

    1 Feature Generating Networks for Zero-Shot Learning Suffering from the extreme training data imbala ...

  3. Java 枚举使用总结

    目录 1.枚举基础 1.1.创建枚举最简单的方式 1.2.简单使用 2.枚举的构造方法 2.1.使用注释方式说明 2.2.使用构造方法 2.3.使用带有构造器的枚举 3.就这些了? 3.1.需求 3. ...

  4. [LeetCode] 216. Combination Sum III 组合之和 III

    Find all possible combinations of k numbers that add up to a number n, given that only numbers from ...

  5. 【电商日志项目之六】数据分析-Hive方式

    环境 hadoop-2.6.5 hive-1.2.1 一.Hive和Hbase整合如果使用Hive进行分析,Hive要从Hbase取数据(当然可以直接将数据存到Hive),那么就需要将Hive和HBa ...

  6. NLP理解层次 --- 思维导图

  7. (转)深入浅出Redis-redis哨兵集群

    背景:对于后台开发,需要了解与集群相关的工作. 深入浅出Redis-redis哨兵集群 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentin ...

  8. CF1260D A Game with Traps

    http://codeforces.com/problemset/problem/1260/D 首先很明显可以想到二分答案,把能力值数组排个序就好. 考虑怎么check. 设当前二分值为w,即不能直接 ...

  9. Office系列常用快捷键

    office三件套,常用的快捷键. Word常用快捷键 查找文字.格式和特殊项 Ctrl+G 使字符变为粗体 Ctrl+B 为字符添加下划线 Ctrl+U 删除段落格式 Ctrl+Q 复制所选文本或对 ...

  10. 【转】基于FPGA的Sobel边缘检测的实现

    前面我们实现了使用PC端上位机串口发送图像数据到VGA显示,通过MATLAB处理的图像数据直接是灰度图像,后面我们在此基础上修改,从而实现,基于FPGA的动态图片的Sobel边缘检测.中值滤波.Can ...