您的位置:首页 > 移动开发 > Android开发

Android使用mob实现手机号验证注册

2016-09-23 11:34 393 查看
现在很多的app都采用首次进入使用手机号码快速注册成功,然后登入设置各种用户信息。这里使用mob第三方sdk实现手机号码的快速注册,实现起来也很简单,集成文档也有说明,这里把实现的过程和结果都记录下来,方便以后查用!

注册一个有效的mob账号

进入mob后台,使用短信验证SDK,然后添加一个应用(可以是空的应用,后面可以继续登记),后台截图如下



下载sdk,短信验证SDK ,解压缩以后的文件夹如下(最新的2.1.1版本)



创建一个短信验证的Demo,把解压缩后的短信验证的文件夹放到和你自己创建的应用同目录下。把ShortMessageSDKGUI和SMSSDK导入到Eclipse中去,前面一个是带GUI验证的sdk,后面是短信验证的sdk。也可以不用mob官方的GUI,实现你自己的GUI,参考无GUI接口说明。导入这两个SDK后,右键自己创建的应用,打开properties,引用前面导入到Eclipse中去的sdk,如下所示



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

<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<String, Object> phoneMap = (HashMap<String, Object>) 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>


最后实现的结果截图如下:

主页面



点击注册,跳转到SDK提供的注册UI界面



然后点击下一步,会弹出对话框进行确认手机号码正确与否,发送验证码



1分钟的倒计时,填写验证码



由于我的手机号码前面已经验证通过了,如果你是在同一台手机设备上进行验证同一个手机号码的话,mob会智能的显示已经验证通过了,不会重复发送验证码给你,这样比较方便!



不过这个功能是在后台进行设置的,你也可以将它关闭,让它重复进行发送验证码



ok,以上就是根据mob官网提供的文档实现的手机号码注册app的流程和实现!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐