现在很多的app都采用首次进入使用手机号码快速注册成功,然后登入设置各种用户信息。这里使用mob第三方sdk实现手机号码的快速注册,实现起来也很简单,集成文档也有说明,这里把实现的过程和结果都记录下来,方便以后查用!
进入mob后台,使用短信验证SDK,然后添加一个应用(可以是空的应用,后面可以继续登记),后台截图如下
下载sdk,短信验证SDK ,解压缩以后的文件夹如下(最新的2.1.1版本)
5. 配置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.READ_SMS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
添加如下Activity
android:name="com.mob.tools.MobUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="stateHidden|adjustResize"/>
6.在onCreate()中启动sdk,如下
SMSSDK.initSDK(this, "您的appkey", "您的appsecret");
7.发送短信验证码
短信SDK内置了开源的GUI功能,您可以通过调用下面的代码打开短信验证页面:
//打开注册页面
RegisterPage registerPage = new RegisterPage();
registerPage.setRegisterCallback(new EventHandler() {
public void afterEvent(int event, int result, Object data) {
// 解析注册结果
if (result == 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(context);
其中EventHandler是短信SDK的操作回调。
8.显示通信录好友列表
同时,短信SDK也内置了通过本设备通信录换取本应用内用户列表的功能,可以通过下面的代码打开“通信录好友”页面:
//打开通信录好友列表页面
ContactsPage contactsPage = new ContactsPage();
contactsPage.show(context);
以上是SDK官方继承文档大致的步骤,按照步骤来就可以很简单的实现注册验证码功能,完整代码如下所示:
package com.example.androidsmsdemo;
import java.util.HashMap;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import cn.smssdk.EventHandler;
import cn.smssdk.SMSSDK;
import cn.smssdk.gui.ContactsPage;
import cn.smssdk.gui.RegisterPage;
public class MainActivity extends Activity {
private String phoneNumber = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SMSSDK.initSDK(this, "175ba9bb5cc60",
"cb8709bc9ed832031dc11cfc84f1468a");
}
public void register(View view) {
// 打开注册页面
RegisterPage registerPage = new RegisterPage();
registerPage.setRegisterCallback(new EventHandler() {
public void afterEvent(int event, int result, Object data) {
// 解析注册结果
if (result == SMSSDK.RESULT_COMPLETE) {
@SuppressWarnings("unchecked")
HashMap phoneMap = (HashMap) data;
String country = (String) phoneMap.get("country");
String phone = (String) phoneMap.get("phone");
phoneNumber = phone;
Log.e("PhoneNumber", phone);
// 提交用户信息(此方法可以不调用)
// registerUser(country, phone);
}
}
});
registerPage.show(this);
Intent intent = new Intent(this, MyActivity.class);
//注册成功以后跳转到我的页面MyActivity,并且在MyActivity显示注册的手机号码
intent.putExtra("phone", phoneNumber);
startActivity(intent);
}
public void friends(View view) {
// 打开通信录好友列表页面
ContactsPage contactsPage = new ContactsPage();
contactsPage.show(this);
}
}
资源文件很简单,就是两个Button,如下:
<LinearLayout 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:orientation="vertical"
tools:context=".MainActivity" >
<TextView
android:layout_width="match_parent"
android:layout_height="45dp"
android:background="#00f0ff"
android:gravity="center"
android:text="注册页面" />
<Button
android:id="@+id/btn_register"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:onClick="register"
android:text="注册" />
<Button
android:id="@+id/btn_friends"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:onClick="friends"
android:text="打开好友列表" />
LinearLayout>
然后点击下一步,会弹出对话框进行确认手机号码正确与否,发送验证码
由于我的手机号码前面已经验证通过了,如果你是在同一台手机设备上进行验证同一个手机号码的话,mob会智能的显示已经验证通过了,不会重复发送验证码给你,这样比较方便!
不过这个功能是在后台进行设置的,你也可以将它关闭,让它重复进行发送验证码
ok,以上就是根据mob官网提供的文档实现的手机号码注册app的流程和实现!