栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android开发中通过手机号+短信验证码登录的实例代码

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android开发中通过手机号+短信验证码登录的实例代码

首先,需要一个电话号码,目前很多账户都是将账户名设置成手机号,然后点击按钮获取手机验证码。

其次,你需要后台给你手机短信的验证接口,各个公司用的不一样,这个身为前端,不需要你来考虑,你只要让你后台给你写好接口,你直接调用就好了。

activity_login.xml



  
    
  
  
    
    

LoginActivity.java

public class LoginActivity extends Activity implements View.onClickListener {
  private int countSeconds = 60;//倒计时秒数
  private EditText mobile_login, yanzhengma;
  private Button getyanzhengma1, login_btn;
  private Context mContext;
  private String usersuccess;
  private Handler mCountHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
      super.handleMessage(msg);
      if (countSeconds > 0) {
 --countSeconds;
 getyanzhengma1.setText("(" + countSeconds + ")后获取验证码");
 mCountHandler.sendEmptyMessageDelayed(0, 1000);
      } else {
 countSeconds = 60;
 getyanzhengma1.setText("请重新获取验证码");
      }
    }
  };
  private String userinfomsg;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mContext = this;
      setContentView(R.layout.activity_login);
      initView();
      initEvent();
      initData();
 }
  private void initView() {
    mobile_login = (EditText) findViewById(R.id.mobile_login);
    getyanzhengma1 = (Button) findViewById(R.id.getyanzhengma1);
    yanzhengma = (EditText) findViewById(R.id.yanzhengma);
    login_btn = (Button) findViewById(R.id.login_btn);
  }
  private void initEvent() {
    getyanzhengma1.setonClickListener(this);
    login_btn.setonClickListener(this);
  }
  private void initData() {
  }
  @Override
  public void onClick(View v) {
    switch (v.getId()) {
      case R.id.getyanzhengma1:
 if (countSeconds == 60) {
   String mobile = mobile_login.getText().toString();
   Log.e("tag", "mobile==" + mobile);
   getMobiile(mobile);
 } else {
   Toast.makeText(LoginActivity.this, "不能重复发送验证码", Toast.LENGTH_SHORT).show();
 }
 break;
      case R.id.login_btn:
 login();
 break;
      default:
 break;
    }
  }
  //获取信息进行登录
  public void login() {
    String mobile = mobile_login.getText().toString().trim();
    String verifyCode = yanzhengma.getText().toString().trim();
    RequestParams params = new RequestParams(“这里换成你的请求登录的接口”);
    x.http().post(params, new Callback.ProgressCallback() {
      @Override
      public void onWaiting() {
      }
      @Override
      public void onStarted() {
      }
      @Override
      public void onLoading(long total, long current, boolean isDownloading) {
      }
      @Override
      public void onSuccess(String result) {
 try {
   JSonObject jsonObject = new JSonObject(result);
   Log.e("tag", "登陆的result=" + jsonObject);
   String success = jsonObject.optString("success");
   String data = jsonObject.optString("data");
   String msg=jsonObject.optString("msg");
   if ("true".equals(success)) {
     Log.e("tag","登陆的data="+data);
     JSonObject json = new JSonObject(data);
     token = json.optString("token");
     userId = json.optString("userId");
  //我这里按照我的要求写的,你们也可以适当改动 
     //获取用户信息的状态
     getUserInfo();
   }else{
     Toast.makeText(LoginActivity.this, msg, Toast.LENGTH_SHORT).show();
   }
 } catch (JSonException e) {
   e.printStackTrace();
 }
      }
      @Override
      public void onError(Throwable ex, boolean isOnCallback) {
      }
      @Override
      public void onCancelled(CancelledException cex) {
      }
      @Override
      public void onFinished() {
      }
    });
  }
  //获取验证码信息,判断是否有手机号码
  private void getMobiile(String mobile) {
    if ("".equals(mobile)) {
      Log.e("tag", "mobile=" + mobile);
      new alertDialog.Builder(mContext).setTitle("提示").setMessage("手机号码不能为空").setCancelable(true).show();
    } else if (isMobileNO(mobile) == false) {
      new alertDialog.Builder(mContext).setTitle("提示").setMessage("请输入正确的手机号码").setCancelable(true).show();
    } else {
      Log.e("tag", "输入了正确的手机号");
      requestVerifyCode(mobile);
    }
  }
  //获取验证码信息,进行验证码请求
  private void requestVerifyCode(String mobile) {
   RequestParams requestParams = new RequestParams(“这里是你请求的验证码接口,让后台给你,参数什么的加在后面”);
    x.http().post(requestParams, new Callback.ProgressCallback() {
      @Override
      public void onWaiting() {
      }
      @Override
      public void onStarted() {
      }
      @Override
      public void onLoading(long total, long current, boolean isDownloading) {
      }
      @Override
      public void onSuccess(String result) {
 try {
   JSonObject jsonObject2 = new JSonObject(result);
   Log.e("tag", "jsonObject2" + jsonObject2);
   String state = jsonObject2.getString("success");
   String verifyCode = jsonObject2.getString("msg");
   Log.e("tag", "获取验证码==" + verifyCode);
   if ("true".equals(state)) {
     Toast.makeText(LoginActivity.this, verifyCode, Toast.LENGTH_SHORT).show();
     startCountBack();//这里是用来进行请求参数的
   } else {
     Toast.makeText(LoginActivity.this, verifyCode, Toast.LENGTH_SHORT).show();
   }
 } catch (JSonException e) {
   e.printStackTrace();
 }
      }
      @Override
      public void onError(Throwable ex, boolean isOnCallback) {
 ex.printStackTrace();
      }
      @Override
      public void onCancelled(CancelledException cex) {
      }
      @Override
      public void onFinished() {
      }
    });
  }
  //使用正则表达式判断电话号码
  public static boolean isMobileNO(String tel) {
    Pattern p = Pattern.compile("^(13[0-9]|15([0-3]|[5-9])|14[5,7,9]|17[1,3,5,6,7,8]|18[0-9])\d{8}$");
    Matcher m = p.matcher(tel);
    System.out.println(m.matches() + "---");
    return m.matches();
  }
  //获取验证码信息,进行计时操作
  private void startCountBack() {
    ((Activity) mContext).runonUiThread(new Runnable() {
      @Override
      public void run() {
 getyanzhengma1.setText(countSeconds + "");
 mCountHandler.sendEmptyMessage(0);
      }
    });
  }
}

以上所述是小编给大家介绍的Android开发中通过手机号+短信验证码登录的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/158729.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号