在发送验证码中,后台我们使用的是Mob平台。
首先注册成为Mob平台用户,进入后台,创建短信验证码应用,如下图。
创建好应用后,记录App Key值和App Secret值,在初始化SDK时使用。
下载相应的SDK,解压后的文件目录如下,将SMSSDK导入ADT中,设为库文件(选择工程右击选择“property”->"Android"选项下的library勾选“Is Library”)。
创建新工程,在工程中引入SMSSDK库(选择工程右击选择“property”->"Android"选项下的library中, 点击右边的“add...", 在出现的下拉列表中选择要引入的library即可)。
配置AndroidManifest.xml文件,添加如下权限:
<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标签下添加如下activity:
<span style="font-size:14px;"><activity android:name="com.mob.tools.MobUIShell" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:windowSoftInputMode="stateHidden|adjustResize"/></span>
在工程中初始化SMSSDK并调用发送验证码,完成后的MainActivity.java与acticity_main.xml如下:
MainActivity.java:
package xyz.baal.testsms; import java.util.HashMap; import java.util.Random; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import cn.smssdk.EventHandler; import xyz.baal.testsms.R; import cn.smssdk.SMSSDK; import cn.smssdk.gui.RegisterPage; public class MainActivity extends Activity { private Button bt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化SMSSDK SMSSDK.initSDK(this, "<您的appkey>", "<您的appsecret>"); bt = (Button) findViewById(R.id.button); bt.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { /* *打开注册页面 *短信SDK内置了开源的GUI功能,您可以通过调用下面的代码打开短信验证页面 */ RegisterPage registerPage = new RegisterPage(); registerPage.setRegisterCallback(new EventHandler() { public void afterEvent(int event, int result, Object data) { // 解析注册结果 if (result == SMSSDK.RESULT_COMPLETE) { //获取数据 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){ Random random = new Random(); String uidString = Math.abs(random.nextInt())+""; String nickName = "BAAL"; SMSSDK.submitUserInfo(uidString, nickName, null, country, phone); } }acticity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" 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=".MainActivity" > <Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:text="短信测试" /> </RelativeLayout>