短信验证集成
1.先从mob网站上下载sdk
2.把里边的四个包导入lib里边
3.把lib里的jar包add 然后aar需要在Module的build.gradle里面将libs加入仓库
repositories{
flatDir{
dirs 'libs' //就是你放aar的目录地址
}
}
4. 在Module的build.gradle里面添加依赖
dependencies {
....//你的其他依赖
compile name:'SMSSDK-<version>',ext:'aar'
compile name:'SMSSDKGUI-<version>',ext:'aar'
}
5.配置AndroidManifest.xml
1.1、添加以下权限:
<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" />
1.2、添加以下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.建一个MyApplication(记得在AndroidManifest中配置)
// 通过代码注册你的AppKey和AppSecret
MobSDK.init(context, "你的AppKey", "你的AppSecret");
7.添加应用
8.界面
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.lixin.registerdemo.MainActivity"> <EditText android:id="@+id/et_phone_number" android:layout_width="280dp" android:layout_height="wrap_content" android:hint="phone number" android:onClick="onClick" /> <LinearLayout android:layout_width="350dp" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:orientation="horizontal"> <EditText android:id="@+id/et_verification_code" android:layout_width="150dp" android:layout_height="wrap_content" android:hint="verification code" android:onClick="onClick" /> <TextView android:id="@+id/tv_get_verification_code" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:onClick="onClick" android:padding="10dp" android:text="获取验证码" android:textSize="19dp" /> </LinearLayout> <TextView android:id="@+id/tv_verification_code" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="15dp" android:text="验证" android:textSize="25dp" /> <TextView android:id="@+id/tv_show_verification_pager" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_margin="15dp" android:text="验证" android:textSize="25dp" /> </LinearLayout>
9.MainActivity界面
package com.example.lixin.registerdemo; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import java.util.HashMap; import cn.smssdk.EventHandler; import cn.smssdk.OnSendMessageHandler; import cn.smssdk.SMSSDK; import cn.smssdk.gui.RegisterPage; import static android.R.attr.country; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private EditText et_phone_number; private EditText et_verification_code; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView tv_show_verification_pager = (TextView) findViewById(R.id.tv_show_verification_pager); TextView tv_get_verification_code = (TextView) findViewById(R.id.tv_get_verification_code); TextView tv_verification_code = (TextView) findViewById(R.id.tv_verification_code); tv_show_verification_pager.setOnClickListener(this); tv_get_verification_code.setOnClickListener(this); tv_verification_code.setOnClickListener(this); et_phone_number = (EditText) findViewById(R.id.et_phone_number); et_verification_code = (EditText) findViewById(R.id.et_verification_code); // 注册监听器 SMSSDK.registerEventHandler(eh); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.tv_show_verification_pager: //打开注册页面 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"); } } }); registerPage.show(MainActivity.this); break; case R.id.tv_get_verification_code: SMSSDK.getVerificationCode("86", et_phone_number.getText().toString().trim(), new OnSendMessageHandler() { @Override public boolean onSendMessage(String s, String s1) { return false; } }); break; case R.id.tv_verification_code: SMSSDK.submitVerificationCode("86", et_phone_number.getText().toString().trim(), et_verification_code.getText().toString().trim()); break; } } EventHandler eh=new EventHandler(){ @Override public void afterEvent(int event, int result, Object data) { if (result == SMSSDK.RESULT_COMPLETE) { //回调完成 if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) { //提交验证码正确的回调 runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "验证成功", Toast.LENGTH_SHORT).show(); } }); }else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){ //获取验证码成功 runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "获取验证码成功", Toast.LENGTH_SHORT).show(); } }); }else if (event ==SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){ //返回支持发送验证码的国家列表 } }else{ ((Throwable)data).printStackTrace(); Log.e("tag", ((Throwable)data).getMessage().toString()); runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "失败", Toast.LENGTH_SHORT).show(); } }); } } }; @Override protected void onDestroy() { super.onDestroy(); SMSSDK.unregisterEventHandler(eh); } }