前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android-短信验证功能,Android实现获取短信验证码的功能以及自定义GUI短信验证详解…

android-短信验证功能,Android实现获取短信验证码的功能以及自定义GUI短信验证详解…

作者头像
全栈程序员站长
发布2022-09-15 09:36:17
3.7K0
发布2022-09-15 09:36:17
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

《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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档