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

其次,你需要后台给你手机短信的验证接口,各个公司用的不一样,这个身为前端,不需要你来考虑,你只要让你后台给你写好接口,你直接调用就好了。
activity_login.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginTop="20dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:gravity="center"
android:orientation="horizontal">
<EditText
android:id="@+id/mobile_login"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginLeft="10dp"
android:hint="请输入您的手机号"
android:textSize="16sp"
android:background="@null"
android:inputType="number"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="15dp"
android:gravity="center"
android:orientation="horizontal">
<EditText
android:id="@+id/yanzhengma"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_weight="4"
android:background="@null"
android:layout_marginLeft="10dp"
android:hint="请输入验证码"
android:textSize="16sp"
android:inputType="number"
/>
<Button
android:id="@+id/getyanzhengma1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.9"
android:textSize="13sp"
android:gravity="center"
android:text="获取验证码"
android:layout_gravity="center"
/>
</LinearLayout>
<Button
android:id="@+id/login_btn"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:text="登录"
android:textSize="16sp"
/>
</LinearLayout>
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<String>() {
@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<String>() {
@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开发中通过手机号+短信验证码登录的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# android
# 手机号验证码登录
# android短信验证码
# Android如何通过手机获取验证码来完成注册功能
# Android开发工程中集成mob短信验证码功能的方法
# Android实现短信验证码获取自动填写功能(详细版)
# Android获取和读取短信验证码的实现方法
# Android实现自动提取短信验证码功能
# Android实现短信验证码自动填写功能
# Android获取短信验证码的实现方法
# Android实现常见的验证码输入框实例代码
# Android自定义控件通用验证码输入框的实现
# Android实现随机生成验证码
# 验证码
# 给你
# 请输入
# 小编
# 都是
# 您的
# 让你
# 在此
# 不需要
# 给大家
# 你来
# 所述
# 给我留言
# 写好
# 感谢大家
# 加在
# 倒计时
# 为空
# 设置成
# 判断是否
相关文章:
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
沈阳制作网站公司排名,沈阳装饰协会官方网站?
建站org新手必看:2024最新搭建流程与模板选择技巧
如何快速上传建站程序避免常见错误?
如何通过智能用户系统一键生成高效建站方案?
如何快速生成专业多端适配建站电话?
如何使用Golang安装API文档生成工具_快速生成接口文档
相册网站制作软件,图片上的网址怎么复制?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
常州自助建站费用包含哪些项目?
代购小票制作网站有哪些,购物小票的简要说明?
网站专业制作公司有哪些,做一个公司网站要多少钱?
大连网站设计制作招聘信息,大连投诉网站有哪些?
广州建站公司哪家好?十大优质服务商推荐
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
如何通过西部数码建站助手快速创建专业网站?
建站之星如何助力企业快速打造五合一网站?
存储型VPS适合搭建中小型网站吗?
如何在企业微信快速生成手机电脑官网?
建站主机选购指南:核心配置与性价比推荐解析
如何高效完成自助建站业务培训?
如何在IIS服务器上快速部署高效网站?
网站app免费制作软件,能免费看各大网站视频的手机app?
如何在万网开始建站?分步指南解析
建站之星代理平台如何选择最佳方案?
如何基于云服务器快速搭建网站及云盘系统?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
婚礼视频制作网站,学习*后期制作的网站有哪些?
建站之星图片链接生成指南:自助建站与智能设计教程
如何通过山东自助建站平台快速注册域名?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
建站上传速度慢?如何优化加速网站加载效率?
建站之星后台管理系统如何操作?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
岳西云建站教程与模板下载_一站式快速建站系统操作指南
成都网站制作报价公司,成都工业用气开户费用?
金*站制作公司有哪些,金华教育集团官网?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
建站之星展会模板:智能建站与自助搭建高效解决方案
公司网站的制作公司,企业网站制作基本流程有哪些?
网站企业制作流程,用什么语言做企业网站比较好?
网站制作新手教程,新手建设一个网站需要注意些什么?
网站制作壁纸教程视频,电脑壁纸网站?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站之星如何保障用户数据免受黑客入侵?
广州商城建站系统开发成本与周期如何控制?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。