Android实现获取短信验证码的功能以及自定义GUI短信验证.docx

上传人:b****7 文档编号:9242250 上传时间:2023-02-03 格式:DOCX 页数:15 大小:85.16KB
下载 相关 举报
Android实现获取短信验证码的功能以及自定义GUI短信验证.docx_第1页
第1页 / 共15页
Android实现获取短信验证码的功能以及自定义GUI短信验证.docx_第2页
第2页 / 共15页
Android实现获取短信验证码的功能以及自定义GUI短信验证.docx_第3页
第3页 / 共15页
Android实现获取短信验证码的功能以及自定义GUI短信验证.docx_第4页
第4页 / 共15页
Android实现获取短信验证码的功能以及自定义GUI短信验证.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Android实现获取短信验证码的功能以及自定义GUI短信验证.docx

《Android实现获取短信验证码的功能以及自定义GUI短信验证.docx》由会员分享,可在线阅读,更多相关《Android实现获取短信验证码的功能以及自定义GUI短信验证.docx(15页珍藏版)》请在冰豆网上搜索。

Android实现获取短信验证码的功能以及自定义GUI短信验证.docx

Android实现获取短信验证码的功能以及自定义GUI短信验证

Android实现获取短信验证码的功能以及自定义GUI短信验证

1、获取SDK

请到官网下载最新版本的SDK,下载回来后解压,你会发现有好几个文件,其中“SMSSDK”目录存放的是短信SDK的全部内容,“SMSSDKSample”中保存了短信SDK的演示项目代码,而“SMSSDKSample.apk”则是“SMSSDKSample”的可执行程序。

app是这个Project的一个module。

如要在这个module里面使用带界面的SMSSDK。

就将MobCommons.jar,MobTools.jar,SMSSDK-2.0.2.aar,SMSSDKGUI-2.0.2.aar放到了app的libs目录下。

然后在app

目录下的build.gradle,加上红圈中的这几句就行了。

注意版本号要一致。

我这里用的是

[html]viewplaincopy在CODE上查看代码片派生到我的代码片

repositories{

flatDir{

dirs'libs'//就是你放aar的目录地址

}

}

dependencies{

compilefileTree(include:

['*.jar'],dir:

'libs')

testCompile'junit:

junit:

4.12'

compile'com.android.support:

appcompat-v7:

21.0.3'

compilename:

'SMSSDK-2.0.2',ext:

'aar'

compilename:

'SMSSDKGUI-2.0.2',ext:

'aar'

}

2、配置AndroidManifest.xml

打开您项目的“AndroidManifest.xml”,在其中添加如下的权限:

[html]viewplaincopy在CODE上查看代码片派生到我的代码片

name="android.permission.READ_CONTACTS"/>

name="android.permission.READ_PHONE_STATE"/>

name="android.permission.WRITE_EXTERNAL_STORAGE"/>

name="android.permission.ACCESS_NETWORK_STATE"/>

name="android.permission.ACCESS_WIFI_STATE"/>

name="android.permission.INTERNET"/>

name="android.permission.RECEIVE_SMS"/>

name="android.permission.GET_TASKS"/>

name="android.permission.ACCESS_FINE_LOCATION"/>

如果使用自带的GUI,需要再“application”下添加如下activity:

[html]viewplaincopy在CODE上查看代码片派生到我的代码片

android:

name="com.mob.tools.MobUIShell"

android:

theme="@android:

style/Theme.Translucent.NoTitleBar"

android:

configChanges="keyboardHidden|orientation|screenSize"

android:

windowSoftInputMode="stateHidden|adjustResize"/>

3、添加代码

启动SDK

在您的项目启动时,调用下面的代码:

[html]viewplaincopy在CODE上查看代码片派生到我的代码片

SMSSDK.initSDK(this,"您的appkey","您的appsecret");

发送短信验证码

短信SDK内置了开源的GUI功能,您可以通过调用下面的代码打开短信验证页面:

[html]viewplaincopy在CODE上查看代码片派生到我的代码片

//打开注册页面

RegisterPageregisterPage=newRegisterPage();

registerPage.setRegisterCallback(newEventHandler(){

publicvoidafterEvent(intevent,intresult,Objectdata){

//解析注册结果

if(result==SMSSDK.RESULT_COMPLETE){

@SuppressWarnings("unchecked")

HashMapphoneMap=(HashMap)data;

Stringcountry=(String)phoneMap.get("country");

Stringphone=(String)phoneMap.get("phone");

//提交用户信息

registerUser(country,phone);

}

}

});

registerPage.show(context);

[html]viewplaincopy在CODE上查看代码片派生到我的代码片

//提交用户信息

privatevoidregisterUser(Stringcountry,Stringphone){

Randomrnd=newRandom();

intid=Math.abs(rnd.nextInt());

Stringuid=String.valueOf(id);

StringnickName="SmsSDK_User_"+uid;

Stringavatar=AVATARS[id%12];

SMSSDK.submitUserInfo(uid,nickName,avatar,country,phone);

}

其中的AVATARS就是一个字符串数组,里面是头像的网络链接而已,这些在下载的SDKDEMO中可查看。

4、下面看看如何自定义GUI短信验证而不是调用系统的

设计我们的布局文件:

[html]viewplaincopy在CODE上查看代码片派生到我的代码片

android="

xmlns:

tools="

android:

layout_width="match_parent"

android:

layout_height="match_parent"

tools:

context=".MainActivity">

android:

id="@+id/textView2"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_centerHorizontal="true"

android:

layout_marginTop="20dp"

android:

text="短信验证"

android:

textColor="#00ffaa"

android:

textSize="20dp"/>

android:

id="@+id/textView1"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_alignParentLeft="true"

android:

layout_below="@+id/textView2"

android:

layout_marginLeft="20dp"

android:

layout_marginTop="20dp"

android:

text="手机号:

"/>

android:

id="@+id/phone"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_alignBaseline="@+id/textView1"

android:

layout_alignBottom="@+id/textView1"

android:

layout_toRightOf="@+id/textView1"

android:

maxLength="11"

android:

ems="11"

android:

inputType="phone">

android:

id="@+id/textView3"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_alignLeft="@+id/textView1"

android:

layout_marginTop="40dp"

android:

layout_below="@+id/phone"

android:

text="验证码:

"/>

android:

id="@+id/cord"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_marginTop="20dp"

android:

layout_alignBaseline="@+id/textView3"

android:

layout_alignBottom="@+id/textView3"

android:

layout_alignLeft="@+id/phone"

android:

ems="4"

android:

maxLength="4"

android:

inputType="phone"/>

android:

id="@+id/getcord"

style="?

android:

attr/buttonStyleSmall"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_alignTop="@+id/cord"

android:

layout_marginLeft="20dp"

android:

layout_marginTop="10dp"

android:

layout_toRightOf="@+id/cord"

android:

visibility="visible"

android:

text="获取验证码"/>

android:

id="@+id/savecord"

android:

layout_width="fill_parent"

android:

layout_height="wrap_content"

android:

layout_below="@+id/cord"

android:

layout_margin="20dp"

android:

text="验证"/>

android:

id="@+id/now"

android:

layout_width="fill_parent"

android:

layout_height="wrap_content"

android:

layout_above="@+id/savecord"

android:

layout_toRightOf="@+id/cord"

android:

gravity="center_horizontal"

android:

visibility="gone"

android:

text="提示信息"

android:

textColor="#aaaaaa"/>

一个主Activity代码如下:

[html]viewplaincopy在CODE上查看代码片派生到我的代码片

publicclassMainActivityextendsActivityimplementsOnClickListener{

privateEditTextphone;

privateEditTextcord;

privateTextViewnow;

privateButtongetCord;

privateButtonsaveCord;

privateStringiPhone;

privateStringiCord;

privateinttime=60;

privatebooleanflag=true;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_main);

init();

    SMSSDK.initSDK(this,"<您的appkey>","<您的appsecret>");

EventHandlereh=newEventHandler(){

@Override

publicvoidafterEvent(intevent,intresult,Objectdata){

Messagemsg=newMessage();

msg.arg1=event;

msg.arg2=result;

msg.obj=data;

handler.sendMessage(msg);

}

};

SMSSDK.registerEventHandler(eh);

}

privatevoidinit(){

phone=(EditText)findViewById(R.id.phone);

cord=(EditText)findViewById(R.id.cord);

now=(TextView)findViewById(R.id.now);

getCord=(Button)findViewById(R.id.getcord);

saveCord=(Button)findViewById(R.id.savecord);

getCord.setOnClickListener(this);

saveCord.setOnClickListener(this);

}

@Override

publicvoidonClick(Viewv){

switch(v.getId()){

caseR.id.getcord:

if(!

TextUtils.isEmpty(phone.getText().toString().trim())){

if(phone.getText().toString().trim().length()==11){

iPhone=phone.getText().toString().trim();

SMSSDK.getVerificationCode("86",iPhone);

cord.requestFocus();

getCord.setVisibility(View.GONE);

}else{

Toast.makeText(MainActivity.this,"请输入完整电话号码",Toast.LENGTH_LONG)how();

phone.requestFocus();

}

}else{

Toast.makeText(MainActivity.this,"请输入您的电话号码",Toast.LENGTH_LONG).show();

phone.requestFocus();

}

break;

caseR.id.savecord:

if(!

TextUtils.isEmpty(cord.getText().toString().trim())){

if(cord.getText().toString().trim().length()==4){

iCord=cord.getText().toString().trim();

SMSSDK.submitVerificationCode("86",iPhone,iCord);

flag=false;

}else{

Toast.makeText(MainActivity.this,"请输入完整验证码",Toast.LENGTH_LONG).show();

cord.requestFocus();

}

}else{

Toast.makeText(MainActivity.this,"请输入验证码",Toast.LENGTH_LONG).show();

cord.requestFocus();

}

break;

default:

break;

}

}

//验证码送成功后提示文字

privatevoidreminderText(){

now.setVisibility(View.VISIBLE);

handlerText.sendEmptyMessageDelayed(1,1000);

}

HandlerhandlerText=newHandler(){

publicvoidhandleMessage(Messagemsg){

if(msg.what==1){

if(time>0){

now.setText("验证码已发送"+time+"秒");

time--;

handlerText.sendEmptyMessageDelayed(1,1000);

}else{

now.setText("提示信息");

time=60;

now.setVisibility(View.GONE);

getCord.setVisibility(View.VISIBLE);

}

}else{

cord.setText("");

now.setText("提示信息");

time=60;

now.setVisibility(View.GONE);

getCord.setVisibility(View.VISIBLE);

}

};

};

Handlerhandler=newHandler(){

@Override

publicvoidhandleMessage(Messagemsg){

//TODOAo-generatedmethodstub

super.handleMessage(msg);

intevent=msg.arg1;

intresult=msg.arg2;

Objectdata=msg.obj;

Log.e("event","event="+event);

if(result==SMSSDK.RESULT_COMPLETE){

//短信注册成功后,返回MainActivity,然后提示新好友

if(event==SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE){//提交验证码成功,验证通过

Toast.makeText(getApplicationContext(),"验证码校验成功",Toast.LENGTH_SHORT).show();

handlerText.sendEmptyMessage

(2);

}elseif(event==SMSSDK.EVENT_GET_VERIFICATION_CODE){//服务器验证码发送成功

reminderText();

Toast.makeText(getApplicationContext(),"验证码已经发送",Toast.LENGTH_SHORT).show();

}elseif(event==SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){//返回支持发送验证码的国家列表

Toast.makeText(getApplicationContext(),"获取国家列表成功",Toast.LENGTH_SHORT).show();

}

}else{

if(flag){

getCord.setVisibility(View.VISIBLE);

Toast.makeText(MainActivity.this,"验证码获取失败,请重新获取",T

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1