准备工作:
·安卓开发环境:基于eclipse的(studio也可以)
·SDK(短信验证的,mob.com的官网上下载),如图:
下载到本地解压就可以了
解压之后的目录文件
现在正式开始代码的实现部分:
·1.新建工程:file->new ->Android Application Project 给自己的工程命名,包名,设置图标等等
·2.进入工程,首先会看到activity_main.xml和MainActivity.java。我们先到.xml布局文件把界面稍微设置一下,
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" > 5 6 <Button 7 android:id="@+id/btn_bind_phone" 8 android:layout_width="match_parent" 9 android:layout_height="wrap_content" 10 android:layout_alignParentTop="true" 11 android:layout_centerHorizontal="true" 12 android:layout_marginTop="59dp" 13 android:text="@string/btn_bind_phone" //这个地方我把“注册或者绑定手机号”写到了字符串里 14 android:textColor="#464646" 15 android:textSize="16sp" /> 16 17 </RelativeLayout>
看到效果如图:
·3.进mob.comg官网创建新应用,获取App Key & App secrete,,如图:
图1 图2
点击左上角的应用
点击添加应用
然后你会在主界面看到
·4.导入我们最开始下载的SDK,为下面的调用做准备。file——>import——>Android——>Existing Android Code Into Workspace——>next
然后点finish,导入后让SMSSDK,ShortMessageSDKGUI成为可以被引用的,步骤如下:
SMSSDK工程上右键--点击Properties
ShortMessageSDKGUI也按照上面的步骤做一次,然后再在自己的工程上右键,同样进入Properties
以上步骤全部完成后就可以写主函数了
这里在导入SDK时可能会报错,这里主要是导入的工程可能不支持你的安卓SDK版本引起的,所以根据你自己的SDK版本修改AndroidMainfest.xml中的
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />//最低版本号,和最高版本号
·5.MainActivity.java里面的代码
1 package com.example.riansms; 2 3 import java.util.HashMap; 4 import java.util.Random; 5 6 import cn.smssdk.EventHandler; 7 import cn.smssdk.SMSSDK; 8 import cn.smssdk.gui.RegisterPage; 9 import android.os.Bundle; 10 import android.app.Activity; 11 import android.view.Menu; 12 import android.view.View; 13 import android.view.View.OnClickListener; 14 import android.widget.Button; 15 16 public class MainActivity extends Activity { 17 18 Button mBtnBindPhone; 19 String APPKEY="*********";//上一步里面的App Key码 20 String APPSECRETE="**********";//上一步的App Secret 21 22 @Override 23 protected void onCreate(Bundle savedInstanceState) { 24 super.onCreate(savedInstanceState); 25 setContentView(R.layout.activity_main); 26 27 //初始化 28 SMSSDK.initSDK(this, APPKEY, APPSECRETE); 29 //配置信息 配置文件去配置权限,界面等 .xml 30 31 mBtnBindPhone=(Button) findViewById(R.id.btn_bind_phone); 32 33 //设置点击事件,匿名函数 34 mBtnBindPhone.setOnClickListener(new OnClickListener() { 35 36 @Override 37 public void onClick(View v) { 38 //注册手机号 39 RegisterPage registerPage=new RegisterPage();// 注册页面实例化 40 41 //注册回调事件 42 registerPage.setRegisterCallback(new EventHandler(){ 43 //事件完成后调用 44 @Override 45 public void afterEvent(int event, int result, Object data) { 46 //判断是否已经完成 47 if(result==SMSSDK.RESULT_COMPLETE){ 48 //获取数据data 49 HashMap<String, Object> maps=(HashMap<String, Object>) data; 50 //国家 51 String country= (String) maps.get("country"); 52 //手机号 53 String phone=(String) maps.get("phone"); 54 55 submitUserInfo(country,phone); 56 } 57 58 } 59 }); 60 //显示注册界面, 完成验证过程,这里就可以随便跳转其他页面也可 61 registerPage.show(MainActivity.this); 62 63 } 64 }); 65 } 66 67 /* 68 * 提交用户信息 69 */ 70 public void submitUserInfo(String country, String phone) { 71 Random r=new Random(); 72 String uid=Math.abs(r.nextInt())+""; 73 String nickName="IMOOC"; 74 SMSSDK.submitUserInfo(uid, nickName, null, country, phone); 75 } 76 77 }
·6.配置权限,注册activity
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.example.riansms" 4 android:versionCode="1" 5 android:versionName="1.0" > 6 7 <uses-sdk 8 android:minSdkVersion="8" 9 android:targetSdkVersion="18" /> 10 11 <!-- 权限 --> 12 <uses-permission android:name="android.permission.READ_CONTACTS"/> 13 <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 14 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 15 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 16 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 17 <uses-permission android:name="android.permission.INTERNET"/> 18 <uses-permission android:name="android.permission.RECEIVE_SMS"/> 19 <uses-permission android:name="android.permission.GET_TASKS"/> 20 21 <!--从22行到35行是自己新建工程时生成的,不要改变--> 22 <application 23 android:allowBackup="true" 24 android:icon="@drawable/ic_launcher" 25 android:label="@string/app_name" 26 android:theme="@style/AppTheme" > 27 <activity 28 android:name="com.example.riansms.MainActivity" 29 android:label="@string/app_name" > 30 <intent-filter> 31 <action android:name="android.intent.action.MAIN" /> 32 33 <category android:name="android.intent.category.LAUNCHER" /> 34 </intent-filter> 35 </activity> 36 37 <!-- 注册MobUIShell页面 --> 38 <activity 39 android:name="com.mob.tools.MobUIShell" 40 android:configChanges="keyboardHidden|orientation|screenSize" 41 android:theme="@android:style/Theme.Translucent.NoTitleBar" 42 android:windowSoftInputMode="stateHidden|adjustResize" /> 43 </application> 44 45 </manifest>
至此,这个短信验证的工程完成,试着运行一下吧,
我的运行结果
1.
点击下一步就可以有“验证成功”的toast的提示消息。
我也可以进后台去查一查验证记录
以上来自慕课网视频讲解