步骤:
1.在mob.com后台新建应用获取对应的APPKEY和APPSECRET
2.在eclipse中导入SMSSDK(SMSSDK与短信验证的项目所属根目录必须一致)
3.将SMSSDK作为library导入项目中
4.短信验证的项目操作
(1)初始化SDK
SMSSDK.initSDK(this, APPKEY, APPSECRETE);
(2)配置信息
添加权限
<!-- 权限 -->
<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" />
注册Activity
<activity
android:name="com.mob.tools.MobUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="stateHidden|adjustResize"/>
(3)代码中使用
效果图
Java代码
package com.messagesecur;
import android.os.Bundle;
import java.util.HashMap;
import java.util.Random;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import cn.smssdk.EventHandler;
import cn.smssdk.SMSSDK;
import cn.smssdk.gui.RegisterPage;
public class MainActivity extends Activity {
Button mBtnBindPhone;
String APPKEY = "e24980c866f0";
String APPSECRETE = "1d248883aa514567906466a46aee280c";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化SDK
SMSSDK.initSDK(this, APPKEY, APPSECRETE);
//配置信息
mBtnBindPhone = (Button) this.findViewById(R.id.btn_binf_phone);
mBtnBindPhone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//注册手机号
RegisterPage registePage = new RegisterPage();
//注册回调事件
registePage.setRegisterCallback(new EventHandler(){
//事件完成后回调
@Override
public void afterEvent(int arg0, int arg1, Object arg2) {
/*
* arg0=event 发生的事件
* arg1=result 返回的结果
* arg2=data 键值对形式存在
*/
//判断结果是否已经完成
if(arg1 == SMSSDK.RESULT_COMPLETE){
//获取数据data
HashMap<String,Object> maps = (HashMap<String, Object>) arg2;
//国家
String country = (String) maps.get("country");
//手机号
String phone = (String) maps.get("phone");
submieUserInfo(country, phone);
}
}
});
//显示注册事件
registePage.show(MainActivity.this);
}
});
}
/**
* 提交用户信息
* @param country
* @param phone
*/
public void submieUserInfo(String country, String phone){
Random r = new Random();
String uid = Math.abs(r.nextInt())+"";
String nickName = "messageTest";
SMSSDK.submitUserInfo(uid, nickName, null,country, phone);
}
}
配置信息
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.messagesecur"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<!-- 权限 -->
<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" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.messagesecur.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="com.mob.tools.MobUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="stateHidden|adjustResize"/>
</application>
</manifest>