300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 安卓 实现获取手机验证码登录功能

安卓 实现获取手机验证码登录功能

时间:2019-12-09 14:36:32

相关推荐

安卓 实现获取手机验证码登录功能

安卓 实现手机获取短信验证码登录

文章目录

安卓 实现手机获取短信验证码登录一、获取短信验证码前面准备?(可看平台文档认证)二、开始编写代码配置依赖1.因为我们需要获取验证码所以要在AndroidManifest文件中添加权限2.在project build.gradle文件dependencies{ }里面添加依赖 一行即可3.在APP build.gradle文件上面添加4.在APP build.gradle文件android{ }里面添加5.最后在android Studio项目中三.开始编写代码1.先写一个.xml布局2.java类里面3.新建java类 Utils4.需要跳转页面,新建activity_main2.xml和Main2Activity四.总结写完后运行项目,输入自己的手机号获取验证码试一下吧!

一、获取短信验证码前面准备?(可看平台文档认证)

1.首先进入/ MobTech官网注册账号。

2.点击开发者服务 开发者平台进入填写基本资料获取认证。

3.注册 填写完资料获取到平台给你的AppKey和App Secret,这两个东西非常重要,在后面的代码编写中要用到!

二、开始编写代码配置依赖

1.因为我们需要获取验证码所以要在AndroidManifest文件中添加权限

<!-- 可选权限说明 --><uses-permission android:name="android.permission.INTERNET" /> <!-- 允许应用程序联网(必须) --><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 允许访问WiFi网络状态信息(必须) --><uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 允许读取手机状态(必须) --><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 允许访问网络状态(必须) --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 允许写手机存储(必须) --><uses-permission android:name="android.permission.RECEIVE_SMS" /> <!-- GUI自动填充验证码功能(非必须) --><uses-permission android:name="android.permission.READ_SMS" /> <!-- 从短信中读取验证码接口(非必须) --><uses-permission android:name="android.permission.READ_CONTACTS" />

2.在project build.gradle文件dependencies{ }里面添加依赖 一行即可

classpath "com.mob.sdk:MobSDK:.0319.1724"

3.在APP build.gradle文件上面添加

apply plugin: 'com.android.application'// 添加插件apply plugin: 'com.mob.sdk' //添加这一行即可

4.在APP build.gradle文件android{ }里面添加

// 在MobSDK的扩展中注册SMSSDK的相关信息MobSDK {appKey "更换平台上自己注册的appkey"appSecret "更换平台上自己注册的appSecret"SMSSDK {}}

5.最后在android Studio项目中

添加完依赖后androidstudio项目右上方会出现Sync Now,点击一下 等待项目配置完成。

三.开始编写代码

1.先写一个.xml布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"android:layout_gravity="center"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="登录页面"android:textColor="#000000"android:textSize="20sp"android:layout_gravity="center"/><EditTextandroid:id="@+id/editTextPhoneNum"android:layout_width="200dp"android:layout_height="wrap_content"android:ems="10"android:hint="手机号"android:inputType="textPersonName"android:layout_gravity="center"android:layout_marginTop="10dp"/><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_marginTop="5dp"><EditTextandroid:id="@+id/editTextCode"android:layout_width="100dp"android:layout_height="wrap_content"android:ems="10"android:hint="验证码"android:importantForAutofill="no"android:inputType="textPersonName" /><Buttonandroid:id="@+id/buttonCode"android:layout_width="wrap_content"android:layout_height="wrap_content"android:hint="获取验证码"android:layout_marginLeft="10dp"tools:text="获取验证码" /></LinearLayout><Buttonandroid:id="@+id/buttonLogin"android:layout_width="200dp"android:layout_height="wrap_content"android:hint="登录"android:layout_gravity="center"android:layout_marginTop="10dp"/></LinearLayout>

2.java类里面

public class MainActivity extends AppCompatActivity {private Button buttonCode,buttonLogin;private EditText editTextPhoneNum,editTextCode;private String phoneNum,code;private EventHandler eh;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);buttonCode = findViewById(R.id.buttonCode);buttonLogin = findViewById(R.id.buttonLogin);editTextCode = findViewById(R.id.editTextCode);editTextPhoneNum = findViewById(R.id.editTextPhoneNum);eh = new EventHandler() {@Overridepublic void afterEvent(int event, int result, Object data) {if (result == SMSSDK.RESULT_COMPLETE){//回调完成if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {//提交验证码成功runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_SHORT).show();//如果需要跳转可在这里进行跳转页面//登录成功跳转到软件首页页面Intent intent=new Intent(MainActivity.this,Main2Activity.class);startActivity(intent);}});}else if (event == SMSSDK.EVENT_GET_VOICE_VERIFICATION_CODE){runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(MainActivity.this,"语音验证发送",Toast.LENGTH_SHORT).show();}});}else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){//获取验证码成功runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(MainActivity.this,"验证码已发送",Toast.LENGTH_SHORT).show();}});}else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){Log.i("test","test");}}else{((Throwable)data).printStackTrace();Throwable throwable = (Throwable) data;throwable.printStackTrace();Log.i("1234",throwable.toString());try {JSONObject obj = new JSONObject(throwable.getMessage());final String des = obj.optString("detail");if (!TextUtils.isEmpty(des)){runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(MainActivity.this,des,Toast.LENGTH_SHORT).show();}});}} catch (JSONException e) {e.printStackTrace();}}}};//注册一个事件回调监听,用于处理SMSSDK接口请求的结果SMSSDK.registerEventHandler(eh);buttonCode.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {phoneNum = editTextPhoneNum.getText().toString();if(!phoneNum.isEmpty()){if(Utils.checkTel(phoneNum)){//利用正则表达式获取检验手机号// 获取验证码SMSSDK.getVerificationCode("86", phoneNum);}else{Toast.makeText(getApplicationContext(),"请输入有效的手机号",Toast.LENGTH_LONG).show();}}else {Toast.makeText(getApplicationContext(),"请输入手机号",Toast.LENGTH_LONG).show();return;}phoneNum = editTextPhoneNum.getText().toString();}});buttonLogin.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {code = editTextCode.getText().toString();if(!code.isEmpty()){//提交验证码SMSSDK.submitVerificationCode("86", phoneNum, code);}else{Toast.makeText(getApplicationContext(),"请输入验证码",Toast.LENGTH_LONG).show();return;}}});}// 使用完EventHandler需注销,否则可能出现内存泄漏@Overrideprotected void onDestroy() {super.onDestroy();SMSSDK.unregisterEventHandler(eh);}}

3.新建java类 Utils

public class Utils {/*** 正则匹配手机号码:*/public static boolean checkTel(String tel){Pattern p = pile("^[1][3,4,5,7,8,9][0-9]{9}$");Matcher matcher = p.matcher(tel);return matcher.matches();}}

4.需要跳转页面,新建activity_main2.xml和Main2Activity

四.总结

写完后运行项目,输入自己的手机号获取验证码试一下吧!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。