Bootstrap

三分钟快速开发手机号注册登录功能

        手机号注册登录如今已经是大多数APP必备的功能,通过验证码的核实,我们获取了用户的手机号码,从而在以下几个方面确保安全和产生价值:

  1. 符合国家信息安全监管的需要,避免个别的用户违反监管要求,而我们无法追踪到源头。
  2. 符合产品运营的需要,有了用户的手机号码,我们才能更好的开展运营和营销活动,构建我们产品的私域流量。

        说了那么多,我们应该如何在短时间内开发手机号码注册登录的功能呢?

        先看看程序要实现的最终效果:

一、相关工具

Android Studio Flamingo 2022.2.1版

二、获取短信通道服务商

        国内的短信验证码通道服务商有很多,但很多通道商要么技术实力弱,直接丢一个http文档给你,发起的请求还是ip地址的形式,要么采用混合通道,发下去的短信迟迟收不到,要么没有技术客服保持及时联系,有问题也很难找到对接人。

        我这里选用的是Bmob后端云作为我们的短信通道服务商,这是一家老牌的云服务提供商,稳定可靠。

        到Bmob后端云官网,注册登录之后,创建应用,再在这个应用下,添加自定义模板。

点击保存按钮,等待官方审核。上班时间内,速度都非常快。

同时,点击设置按钮,获取你这个应用的Application ID。

三、开发过程

        一切准备就绪,我们可以正式开始开发了。

  • 创建Android 项目

        我这里选择的是Java语言作为项目语言。

        创建App类

        这个App类继承自Application 类,里面的代码也非常简单,就是把Application ID替换你刚刚获取到的那个。

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Bmob.initialize(this,"Your Application ID");
    }
}
  • 修改AndroidManifest.xml文件

        在Application节点的同一级新增权限如下:

<!--允许联网 -->
<uses-permission android:name="android.permission.INTERNET" />
<!--获取GSM(2g)、WCDMA(联通3g)等网络状态的信息  -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--允许读取手机状态 用于创建BmobInstallation-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
  • 给application节点新增android:name,把这个值改为刚刚创建的App类的名字,如下:
<application
    android:allowBackup="true"
    android:dataExtractionRules="@xml/data_extraction_rules"
    android:fullBackupContent="@xml/backup_rules"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/Theme.Bmobandroiddemosms"
    tools:targetApi="31"
    android:name=".App">
  • 在application节点内新增provider,如下:
<provider
    android:name="cn.bmob.v3.util.BmobContentProvider"
    android:authorities="这个改为你的App包名.BmobContentProvider">
</provider>
  • 发送短信验证码

做好了上面这些之后,你就可以正式在你的业务逻辑中接入短信验证码了。代码如下:

BmobSMS.requestSMSCode(phone, "你刚刚填写的短信模板名称", new QueryListener<Integer>() {
    @Override
    public void done(Integer smsId, BmobException e) {
        if (e == null) {
            mTvInfo.append("发送验证码成功,短信ID:" + smsId + "\n");
        } else {
            mTvInfo.append("发送验证码失败:" + e.getErrorCode() + "-" + e.getMessage() + "\n");
        }
    }
});

其中,phone是用户端输入的手机号码。

  • 验证短信验证码

验证短信验证码的代码也非常简单,只有下面短短几行。

BmobSMS.verifySmsCode(phone, code, new UpdateListener() {
    @Override
    public void done(BmobException e) {
        if (e == null) {
            mTvInfo.append("验证码验证成功,您可以在此时进行重要操作!\n");
        } else {
            mTvInfo.append("验证码验证失败:" + e.getErrorCode() + "-" + e.getMessage() + "\n");
        }
    }
});

其中,phone是用户输入的手机号码,code是用户收到的验证码。

四、源码获取

需要的用户可直接联系本人获取源码,欢迎交流如何更快开发App。

;