先看一下模拟的效果,
第一步:
首先我们去http://www.mob.com/ 去注册一个账号,然后登录主页
选择进入后台,接着你会看到如下
选择红色框圈住的短信验证选项,鼠标悬浮的时候出现一个提示,我们选择立即使用
添加一个应用选择android,此时会生成一个app Key和app Secret,这两个我们待会在代码中会用到。
这些做完之后,我们需要下载短信验证码的sdk。
下载之后,我们在android studio中新建一个项目
第一步:导入需要的jar包
刚刚我们下载的短信验证码sdk文件解压之后是这样的:
打开SMSSDK之后出现下面的包
选择后面4个复制到Android studio中的libs文件夹下。
此时要做的就是在app的build.gradle中添加如下依赖
repositories{
flatDir{
dirs 'libs' //就是你放aar的目录地址
}
}
dependencies {
....//你的其他依赖
compile name:'SMSSDK-<version>',ext:'aar'
compile name:'SMSSDKGUI-<version>',ext:'aar'
}
这里的version是你下载的版本号
1,文件说明
文件名 说明 需求
MobCommons.jar Mob 通用公共库 必须
MobTools.jar Mob 工具公共库 必须
SMSSDK-<version>.aar SMSSDK 核心 必须
SMSSDKGUI-<version>.aar SMSSDK GUI 开源库 可选
如果你需要用GUI库,则需要加入全部这四个文件,不需要可以去掉SMSSDKGUI。为了方便和ShareSDK一起集成,公共库依然打包成jar。
如果你同时使用ShareSDK,保留一份公共库就行(公共库版本一致或兼容)。
2,如何使用
将以上文件按需放入Android Studio项目所要使用SMSSDK的Module所在的Libs里面,再在Module的build.gradle里面将libs加入仓库(repositories),
然后添加依赖(dependencies )示例如下:
repositories{
flatDir{
dirs 'libs' //就是你放aar的目录地址
}
}
dependencies {
....//你的其他依赖
compile name:'SMSSDK-<version>',ext:'aar'
compile name:'SMSSDKGUI-<version>',ext:'aar'
}
第二步:
在activity_main.xml中
<Button
android:id="@+id/register"
android:layout_centerInParent="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textColor="#ffffff"
android:background="#009688"
android:text="SendMessage" />
MainActivity.java中的代码
package com.example.administrator.smstest;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import java.util.HashMap;
import cn.smssdk.EventHandler;
import cn.smssdk.gui.RegisterPage;
public class MainActivity extends AppCompatActivity {
private Button sendMessage;
//这里填上你自己的appKey和appSecret我把自己的隐去了
private String appKey = "******";
private String appSecret = "******";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//第一步:初始化验证码调用initSDK()方法
/**初始化验证码
* 有三个参数,第一个是上下文对象,第二三个参数是在mob.com中申请的、
*/
cn.smssdk.SMSSDK.initSDK(MainActivity.this, appKey, appSecret);
//sendMessage绑定和点击事件
sendMessage= (Button) findViewById(R.id.register);
sendMessage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//注册页面
RegisterPage registerPage = new RegisterPage();
//接口回调
registerPage.setRegisterCallback(new EventHandler() {
public void afterEvent(int event, int result, Object data){
// 解析注册结果
if (result == cn.smssdk.SMSSDK.RESULT_COMPLETE) {
@SuppressWarnings("unchecked")
//取得数据
HashMap<String, Object> phoneMap = (HashMap<String, Object>) data;
String country = (String) phoneMap.get("country");
String phone = (String) phoneMap.get("phone");
//创建一个方法
registerUser(country, phone);
}
}
});
registerPage.show(MainActivity.this);
}
});
}
public void registerUser(String country, String phone) {
cn.smssdk.SMSSDK.submitUserInfo(null, null, null, country, phone);
}
}
最后要加上很重要的配置信息
在manifest中加入以下权限
<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" />
并且要加上acticity的配置
<activity
android:name="com.mob.tools.MobUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="stateHidden|adjustResize"/>
好了,此时大功告成!试试你的结果吧。