發送短信驗證碼的JAVA代碼


package com.moretickets.platform;

import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import sun.rmi.runtime.Log;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class SendSMSCode {

    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);
                }
            });
        }



}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM