手机获取短信验证码——自定义UI界面
2016-09-11 21:22
176 查看
在上一篇博客中,简单实现了获取短信验证码的功能,那么在本文中,主要介绍短信SDK内置(无UI界面)的方法,对外的类主要有:SMSSDK和EventHandler先看一波xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <EditText android:id="@+id/ed1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:hint="请输入手机号"/> <Button android:id="@+id/btn_get" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="获取验证码"/> </LinearLayout> <EditText android:id="@+id/ed2" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入验证码" android:layout_marginTop="10dp"/> <Button android:id="@+id/btn_login" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="注册"/> </LinearLayout>配置权限等等就不再贴了,首先得到用户输入的值:
public void getNum() { phoneNumber = ed1.getText().toString().trim(); code = ed2.getText().toString().trim(); }其次初始化接口:
<span style="font-size:14px;">public void regist() { 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 { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "操作失败,请重新获取验证码", Toast.LENGTH_SHORT).show(); } }); ((Throwable) data).printStackTrace(); } } }; SMSSDK.registerEventHandler(eh); //注册短信回调 }</span>设置点击事件,判断用户输入的值是否为空或有误
<span style="font-size:14px;">public void onClick(View view) { getNum(); switch (view.getId()) { case R.id.btn_get: regist();//调用注册短信发送的回调接口 //判断是否为null或“” if (TextUtils.isEmpty(phoneNumber)) { Toast.makeText(MainActivity.this, "请输入合法的手机号", Toast.LENGTH_SHORT).show(); } else { SMSSDK.getVerificationCode("86", phoneNumber); } break; case R.id.btn_login: regist(); if (TextUtils.isEmpty(phoneNumber) && TextUtils.isEmpty(code)) { Toast.makeText(MainActivity.this, "请检验您输入的信息", Toast.LENGTH_SHORT).show(); } else { SMSSDK.submitVerificationCode("86", phoneNumber, code); } break; } }</span>getSupportedCountries()获取短信目前支持的国家列表,在监听中返回getVerificationCode(String country, String phone)
请求获取短信验证码,在监听中返回
submitVerificationCode(String country, String phone, String code) 提交短信验证码,在监听中返回
现在可以运行自己的代码了,撒花~
相关文章推荐
- 手机获取短信验证码——内置UI界面
- Android 手机获取短信验证码—自带UI界面
- Android之文本框自动获取发送到手机的短信验证码
- Android如何通过手机自动获取短信验证码
- Android 手机获取加速度传感器加速度数据并自定义采样频率
- Android实现获取短信验证码的功能以及自定义GUI短信验证
- Android 手机获取加速度传感器加速度数据并自定义采样频率
- 手机性能测评之自定义获取gfxinfo信息
- Android之ListView分页(手机客户端自定义数据源)获取网路数据(二)
- iOS获取设备的序列号,自定义名,设备名,手机版本号,手机序列号,,手机型号,地方型号,当前App名称,App版本号...
- 获取手机通讯录联系人(包含模糊查询,dialog自定义,也有一个自定义通知栏)
- 获取配置文件自定义配置组的配置信息
- 获取JavaScript用户自定义类的类名称的代码
- Django 中自定义 tag 如何获取变量参数的值
- 如何在Java ME平台上获取手机串号
- J2ME获取IMEI手机串号
- 怎样调用动态获取的自定义对象的方法
- (DB ,sqlserver2005,tips)如何获取用户自定义的触发器的内容(在sqlserver2005树形菜单没有显示)
- Django 中自定义 tag 如何获取变量参数的值
- 搞笑的获取免费索爱手机邮件-google,最好的反诈骗工具