短信验证码

 

1.Mob官网

2.使用3.0版本以下的(因为简单)

3.按照集成路径开始集成

public class RegisterActivity extends BaseAcitivty implements View.OnClickListener {

private String TAG="msg";

private EditText edtRegisterPhone,edtRegisterPassword,edtRegisterCode;

private Button btnRegisterCode,btnRegisterSend;

private Timer timer;

private int count=60;

private TextView fanhui;

private Handler mHandler=new Handler(){

@Override

public void handleMessage(Message msg) {

int size= (int) msg.obj;

if (size>0){

btnRegisterCode.setText(size+"秒后获取验证码");

btnRegisterCode.setEnabled(false);

}

else{

btnRegisterCode.setEnabled(true);

btnRegisterCode.setText("重新获取验证码");

if (timer != null) {

timer.cancel();

}

count = 60;

} } };

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_register);

initView();

btnRegisterCode.setOnClickListener(this);

btnRegisterSend.setOnClickListener(this);

fanhui.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) { finish(); } }); }

private void initView() {

edtRegisterPhone= (EditText) findViewById(R.id.edt_register_phone);

edtRegisterPassword= (EditText) findViewById(R.id.edt_register_password);

edtRegisterCode= (EditText) findViewById(R.id.edt_register_code);

btnRegisterCode= (Button) findViewById(R.id.btn_register_code);

btnRegisterSend= (Button) findViewById(R.id.btn_register_send);

fanhui= (TextView) findViewById(R.id.fanhui); }

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.btn_register_code:

         String phone = edtRegisterPhone.getText().toString().trim();

         if (!checkPhone(phone)) {//对手机号是否正确进行正则表达式校验

            Toast.makeText(this, "请输入正确的手机号", Toast.LENGTH_SHORT).show();

         } else {

              EventHandler eh = new EventHandler() {

              @Override

               public void afterEvent(int event, int result, Object data) {

                if (result == SMSSDK.RESULT_COMPLETE) {

                    Log.i(TAG, "afterEvent: 回调完成"); //回调完成

                    if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {

                         Log.i(TAG, "afterEvent: 提交验证码成功"); // 校验成功,可以把数据提交给服务器,做跳转 // 提交验证码成功

                     }                    

                    else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {

                          Log.i(TAG, "afterEvent: 获取验证码成功"); //获取验证码成功

                           } else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) {

                          Log.i(TAG, "afterEvent: 返回支持发送验证码的国家列表"); //返回支持发送验证码的国家列表

                 } } else { ((Throwable) data).printStackTrace(); } } };

               SMSSDK.registerEventHandler(eh); //注册短信回调

               SMSSDK.getVerificationCode("+86", phone);

               timer = new Timer();

              timer.schedule(new TimerTask() {

               @Override

              public void run() {

              if (count > 0) {

                  count--;

                 }

              Message msg = Message.obtain();

              msg.obj = count; mHandler.sendMessage(msg); } }, 0, 1000); }

               break;

case R.id.btn_register_send:

           String Phone=edtRegisterPhone.getText().toString().trim();

           String code=edtRegisterCode.getText().toString().trim();

           SMSSDK.submitVerificationCode("86",Phone,code);

           Intent intent=new Intent(RegisterActivity.this,MainActivity.class);

           startActivity(intent);

           break;

} }

private boolean checkPhone(String phone) { return CheckUtils.isPhone(phone); } }

public class CheckUtils {
    /**
     * 验证手机格式
     */
    public static boolean isPhone(String phone) {
    /*
    移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
    联通:130、131、132、152、155、156、185、186
    电信:133、153、180、189、(1349卫通)
    总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9
    */
        String num = "[1][358]\\d{9}";//"[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。
        if (TextUtils.isEmpty(phone)) {
            return false;
        } else {
            //matches():字符串是否在给定的正则表达式匹配
            return phone.matches(num);
        }
    }
}

 

基于SSM框架的智能家政保洁预约系统,是一个旨在提高家政保洁服务预约效率和管理水平的平台。该系统通过集成现代信息技术,为家政公司、家政服务人员和消费者提供了一个便捷的在线预约和管理系统。 系统的主要功能包括: 1. **用户管理**:允许消费者注册、登录,并管理他们的个人资料和预约历史。 2. **家政人员管理**:家政服务人员可以注册并更新自己的个人信息、服务类别和服务时间。 3. **服务预约**:消费者可以浏览不同的家政服务选项,选择合适的服务人员,并在线预约服务。 4. **订单管理**:系统支持订单的创建、跟踪和管理,包括订单的确认、完成和评价。 5. **评价系统**:消费者可以在家政服务完成后对服务进行评价,帮助提高服务质量和透明度。 6. **后台管理**:管理员可以管理用户、家政人员信息、服务类别、预约订单以及处理用户反馈。 系统采用Java语言开发,使用MySQL数据库进行数据存储,通过B/S架构实现用户与服务的在线交互。系统设计考虑了不同用户角色的需求,包括管理员、家政服务人员和普通用户,每个角色都有相应的权限和功能。此外,系统还采用了软件组件化、精化体系结构、分离逻辑和数据等方法,以便于未来的系统升级和维护。 智能家政保洁预约系统通过提供一个集中的平台,不仅方便了消费者的预约和管理,也为家政服务人员提供了一个展示和推广自己服务的机会。同时,系统的后台管理功能为家政公司提供了强大的数据支持和决策辅助,有助于提高服务质量和管理效率。该系统的设计与实现,标志着家政保洁服务向现代化和网络化的转型,为管理决策和控制提供保障,是行业发展中的重要里程碑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值