短信驗證

//new倒計時對象,總共的時間,每隔多少秒更新一次時間
myCountDownTimer= new MyCountDownTimer(60000, 1000);

send.setOnClickListener(new View.OnClickListener() {
    @SuppressLint("WrongConstant")
    @Override
    public void onClick(View arg0) {
        System.out.println("點擊發送驗證碼");


        number1= number.getText().toString().trim();

        if(isPhoneNumber(number1)){

            reqVerificationEntityRegister(number1);
            myCountDownTimer.start();

        }else{
            Toast.makeText(RegisterFirstActivity.this, "請輸入正確的手機號!", Toast.LENGTH_SHORT).show();
        }
    }
});
class MyCountDownTimer extends CountDownTimer {

    public MyCountDownTimer(long millisInFuture, long countDownInterval) {
        super(millisInFuture, countDownInterval);
    }

    //計時過程
    @Override
    public void onTick(long l) {
        //防止計時過程中重複點擊
        send.setClickable(false);
        send.setText(l / 1000 + "秒重發");

    }

    //計時完畢的方法
    @Override
    public void onFinish() {
        //重新給Button設置文字
        send.setText("重新獲取");
        //設置可點擊
        send.setClickable(true);
    }
}

int codeFromSrever=2;

private class VerificationEntity {
    int code;
    String msg;

    @Override
    public String toString() {
        return "VerificationEntity{" +
                "code=" + code +
                ", msg='" + msg + '\'' +
                '}';
    }
}

private VerificationEntity onRepVerificationEntity(JSONObject json)
        throws JSONException {

    logger.d("registerFirst#onRepVerificationEntity");

    if (json == null) {
        logger.e("registerFirst#json is null");
        return null;
    }

    logger.d("registerFirst#onRepVerificationEntity json:%s", json);

    int code = json.getInt("code");
    if (code != 0) {
        logger.e("registerFirst#code is not right:%d, json:%s", code, json);
       // return null;
    }



    VerificationEntity addrsEntity = new VerificationEntity();
    addrsEntity.code = code;
    logger.d("registerFirst#got VerificationEntity:%s", addrsEntity);
    return addrsEntity;
}

public void getCodeFromServer(VerificationEntity verificationEntity){
    codeFromSrever= verificationEntity.code;
}
/**
 * 發送驗證碼
 */
public void reqVerificationEntityRegister(String number) {

    logger.d("socket#VerificationEntity.");
    getVerificationClient.setUserAgent("Android-TT");
    String url=SystemConfigSp.instance().getStrConfig(SystemConfigSp.SysCfgDimension.LOGINSERVER).substring(0,SystemConfigSp.instance().getStrConfig(SystemConfigSp.SysCfgDimension.LOGINSERVER).length()-11);
   System.out.println(url);
    getVerificationClient.get(url+"/sendsms/"+number+"", new BaseJsonHttpResponseHandler(){
        @Override
        public void onSuccess(int i, Header[] headers, String s, Object o) {
            logger.d("socket#req VerificationEntity onSuccess, response:%s", s);
            VerificationEntity msgServer = (VerificationEntity) o;
            System.out.println(msgServer);
            if(msgServer == null){

                return ;
            }
            getCodeFromServer(msgServer);

        }

        @Override
        public void onFailure(int i, Header[] headers, Throwable throwable, String responseString, Object o) {
            logger.d("socket#req VerificationEntity Failure, errorResponse:%s", responseString);

        }

        @Override
        protected Object parseResponse(String s, boolean b) throws Throwable {
            /*子類需要提供實現,將請求結果解析成需要的類型 異常怎麼處理*/
            JSONObject jsonObject = new JSONObject(s);
            VerificationEntity msgVerificationEntity = onRepVerificationEntity(jsonObject);
            return msgVerificationEntity;
        }
    });
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章