大家好,又见面了,我是你们的朋友全栈君。
《Android实现获取短信验证码的功能以及自定义GUI短信验证详解》由会员分享,可在线阅读,更多相关《Android实现获取短信验证码的功能以及自定义GUI短信验证详解(8页珍藏版)》请在人人文库网上搜索。
1、Android实现获取短信验证码的功能以 及自定义GUI短信验证1、 获取SDK请到官网下载最新版本的 SDK,下载回来后解压,你会发现有好几个文件, 其中“ SMSSDK 目录存放的是短信 SDK的全部内容,“SMSSDKSample ”中保存了短信SDK的演示项目代 码,而“ SMSSDKSample.apk ” 则是“ SMSSDKSample ”的可执行程序。| McbCarnmor-2016X)03.12?9.jarapp是这个Project的一个 module。如要在这个 module里面使用带界面的SMSSDK。就将 MobCommons.jar,MobTools.jar,SMS。
2、SDK-2.0.2.aar,SMSSDKGUI-2.02aar 放到了 app 的 libs目录下。然后在 app目录下的build.gradle,加上红圈中的这几句就行了。注意版本号要一致。我这里用的是html view plain copy 在CODE上查看代码片派生到我的代码片repositoriesflatDirdirs libs /就是你放 aar的目录地址depe nden cies compile fileTree(i nclude: *.ja门,dir: libs)testCompile jun it:ju nit:4.12compile com.a ndroid.suppo比。
3、appcompat-v7:21.0.3compile name:SMSSDK-2.0.2,ext:aarcompile name:SMSSDKGUI-2.0.2,ext:aarSOuretSetS (nainiJniLibs, srcDirs = )epcsi: ;: i efi (flatDirf4inMbe低試mt的目)drpendencies【cotrile filelref intiudt: t. jnrh j. dir: P libs tcstCcnplie Juni t i juoit12eonpile h ciiiv- nndrnidr supportv? :21, Qr 3CQ。
4、uipi le nne :* SISSDK-2. 0. 2*. cit :* nar uanpil亡 no*?: SISSDKGU1 2. Q. 2f, ext : au*2、配置 AndroidManifest.xml打开您项目的AndroidManifest.xml ”在其中添加如下的权限:html view plain copy 在CODE上查看代码片派生到我的代码片如果使用自带的 GUI,需要再application 下添加如下 activity :html view plain copy 在CODE上查看代码片派生到我的代码片 vactivityan droid:n ame=com.。
5、mob.tools.MobUIShellan droid:theme=a ndroid:style/Theme.Tra nsluce nt.NoTitleBaran droid:c on figCha nges=keyboardHidde n| orie ntati on| scree nSizean droid:wi ndowSoftI nputMode=stateHidde n|adjustResize/3、添加代码启动SDK在您的项目启动时,调用下面的代码:html view plain copy 在CODE上查看代码片派生到我的代码片SMSSDK.initSDK(this,您的 app。
6、key,您的 appsecret);发送短信验证码短信SDK内置了开源的 GUI功能,您可以通过调用下面的代码打开短信验证页面: html view plain copy 在 CODE 上查看代码片派生到我的代码片 /打开注册页面RegisterPage registerPage = new RegisterPage(); registerPage.setRegisterCallback(new EventHandler() public void afterEvent(int event, int result, Object data) / 解析注册结果if (result = SMSSD。
7、K.RESULT_COMPLETE) SuppressWarnings(unchecked)HashMap phoneMap = (HashMap) data; String country = (String) phoneMap.get(country);String phone = (String) phoneMap.get(phone);/ 提交用户信息 registerUser(country, phone);); registerPage.show(context);html view plain copy 在 CODE 上查看代码片派生到我的代码片 / 提交用户信息private 。
8、void registerUser(String country, String phone) Random rnd = new Random(); int id = Math.abs(rnd.nextInt(); String uid = String.valueOf(id);String nickName = SmsSDK_User_ uid;String avatar = AVATARSid % 12;SMSSDK.submitUserInfo(uid, nickName, avatar, country, phone);其中的 AVATARS 就是一个字符串数组,里面是头像的网络链。
9、接而已,这些在下载的 SDKDEMO 中可查看。4、下面看看如何自定义 GUI 短信验证而不是调用系统的 设计我们的布局文件:html view plain copy 在 CODE 上查看代码片派生到我的代码片 一个主 Activity 代码如下:html view plain copy 在 CODE 上查看代码片派生到我的代码片 public class MainActivity extends Activity implements OnClickListener private EditText phone;private EditText cord;private TextView n。
10、ow;private Button getCord;private Button saveCord;private String iPhone;private String iCord;private int time = 60;private boolean flag = true;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(。
11、R.layout.activity_main);init();SMSSDK.initSDK(this, , );EventHandler eh=new EventHandler()Overridepublic void afterEvent(int event, int result, Object data) Message msg = new Message();msg.arg1 = event;msg.arg2 = result;msg.obj = data;handler.sendMessage(msg);SMSSDK.registerEventHandler(eh);private 。
12、void init() 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)。
13、;Overridepublic void onClick(View v) switch (v.getId() case R.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.setVisibi。
14、lity(View.GONE);elseToast.makeText(MainActivity.this, 请 输 入 完 整 电 话 号 码 Toast.LENGTH_LONG).swww.sm136.comhow();phone.requestFocus();elseToast.makeText(MainActivity.this, 请 输 入 您 的 电 话 号 码 Toast.LENGTH_LONG).show();phone.requestFocus();break;case R.id.savecord:if(!TextUtils.isEmpty(cord.getText().toS。
15、tring().trim() if(cord.getText().toString().trim().length()=4) iCord = cord.getText().toString().trim(); SMSSDK.submitVerificationCode(86, iPhone, iCord); flag = false;elseToast.makeText(MainActivity.this, 请 输 入 完 整 验 证 码 Toast.LENGTH_LONG).show();cord.requestFocus();elseToast.makeText(MainActivity.。
16、this, 请 输 入 验 证 码 Toast.LENGTH_LONG).show();cord.requestFocus();break;default:break;/验证码送成功后提示文字 private void reminderText() now.setVisibility(View.VISIBLE); handlerText.sendEmptyMessageDelayed(1, 1000);Handler handlerText =new Handler()public void handleMessage(Message msg) if(msg.what=1)if(time0)n。
17、ow.setText( 验证码已发送 time 秒 ); time-;handlerText.sendEmptyMessageDelayed(1, 1000);elsenow.setText( 提示信息 ); time = 60;now.setVisibility(View.GONE); getCord.setVisibility(View.VISIBLE);elsecord.setText();now.setText(”提示信息”);time = 60;now.setVisibility(View.GONE); getCord.setVisibility(View.VISIBLE);Ha。
18、ndler handler=new Handler()Overridepublic void handleMessage(Message msg) / TODO Autnc630.como-generated method stub super.handleMessage(msg); int event = msg.arg1; int result = msg.arg2; Object data = msg.obj;Log.e(event, event= event);if (result = SMSSDK.RESULT_COMPLETE) /短信注册成功后,返回 MainActivity, 。
19、然后提示新好友if (event = SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE)/ 提交验证码成功 ,验证通过Toast.makeText(getApplicationContext(), 验 证 码 校 验 成 功 , Toast.LENGTH_SHORT).show();handlerText.sendEmptyMessage(2); else if (event = SMSSDK.EVENT_GET_VERIFICATION_CODE)/服务器验证码发送成功reminderText();Toast.makeText(getApplicationConte。
20、xt(), 验 证 码 已 经 发 送 , Toast.LENGTH_SHORT).show();else if (event =SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES)/ 返回支持发送验证码的国家列表Toast.makeText(getApplicationContext(), 获 取 国 家 列 表 成 功 , Toast.LENGTH_SHORT).show(); else if(flag)getCord.setVisibility(View.VISIBLE);Toast.makeText(MainActivity.this, 验证码获取失败,请重新获取。
21、 , Toast.LENGTH_SHORT).show();phone.requestFocus();else(Throwable) data).printStackTrace();int resId = getStringRes(MainActivity.this, smssdk_network_error);Toast.makeText(MainActivity.this, 验 证 码 错 误 , Toast.LENGTH_SHORT).show();cord.selectAll(); if (resId 0) Toast.makeText(MainActivity.this, resId, Toast.LENGTH_SHORT).show();Overrideprotected void onDestroy() super.onDestroy();SMSSDK.unregisterAllEventHandler();注:appkey和appsecret在http:/dashboard.mob.com/注册一个账号后,创建一个发送短信 的应用,系统会自动为生成 appkey 和 appsecrethandlerText 是自定义设计的 Handker 对象,用于当服务器发送验证码后,提醒用户注意。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160046.html原文链接:https://javaforall.cn