자바 코드를 보내기 메시지 인증 코드

패키지 com.moretickets.platform을;

수입 com.alibaba.fastjson.JSONException;
수입 com.alibaba.fastjson.JSONObject;
수입 sun.rmi.runtime.Log;

수입 java.util.regex.Matcher;
수입 있으며, java.util.regex.Pattern;

공공  클래스 SendSMSCode {

    개인  INT의 countSeconds = 60; // 카운트 다운 초 
    개인 는 EditText mobile_login, yanzhengma,
     개인 단추 getyanzhengma1,하여 login_btn;

    개인 상황에 맞는 mContext;
    개인 문자열 usersuccess;

    개인 처리기 mCountHandler = 새로운 핸들러 () {
        @보수
        공공  무효 handleMessage (메시지 MSG) {
             슈퍼 .handleMessage (MSG);
            경우 (countSeconds> 0 ) {
                 - ; countSeconds
                getyanzhengma1.setText는 ( ( "+ countSeconds +" "다음 코드 받기)" );
                mCountHandler.sendEmptyMessageDelayed ( 0, 1000 );
            } 다른 {
                countSeconds = 60 ;
                getyanzhengma1.setText ( "제발 다시 얻을 확인 코드를" );
            }
        }
    };
    개인 문자열 userinfomsg;
    @보수
    보호  공간 에서 onCreate (번들 savedInstanceState) {
         슈퍼 .onCreate (savedInstanceState);
        mContext는 = ;
        된 setContentView (R.layout.activity_login);
        initView ();
        initEvent ();
        initData ();
  }

        개인  무효 initView () {
            mobile_login = (글고) findViewById를 (R.id.mobile_login);
            getyanzhengma1 = (버튼) findViewById를 (R.id.getyanzhengma1);
            yanzhengma = 합니다 (글고)를 findViewById를 (R.id.yanzhengma);
            하여 login_btn = (버튼) findViewById를 (R.id.login_btn);

        }

        개인  무효 initEvent () {
            getyanzhengma1.setOnClickListener ( );
            login_btn.setOnClickListener ( );
        }

        개인  무효 initData () {
        }

        @보수
        공공  무효 의 onclick (보기 V) {
             스위치 (v.getId ()) {
                 경우 R.id.getyanzhengma1 :
                     경우 (countSeconds == 60 ) {
                        문자열 모바일 = mobile_login.getText의 toString () ().;
                        Log.e ( "태그"+ "모바일 ==" 이동);
                        getMobiile (모바일);
                    } 다른 {
                        Toast.makeText (LoginActivity. 다음은이 "반복하지 전송 코드" , Toast.LENGTH_SHORT)를 .Show ();
                    }
                    휴식 ;
                경우 R.id.login_btn :
                    로그인();
                    휴식 ;
                기본값 :
                     휴식 ;
            }
        }
        // 정보를 기록 할 수 
        공공  무효 () {로그인
            문자열 모바일 = mobile_login.getText의 toString () () (트림)..;
            문자열 verifyCode = yanzhengma.getText의 toString () () (트림)..;
            PARAMS RequestParams = 새로운 새로운 RequestParams ( "인터페이스는 로그인 여기에 귀하의 요청을 대체하는");
            x.http (). 포스트 (PARAMS, 새로운 Callback.ProgressCallback <문자열> () {
                @보수
                공공  무효 onWaiting () {

                }
                @보수
                공공  무효 onStarted () {

                }
                @보수
                공공  무효 onLoading (  총,  현재, 부울 isDownloading) {

                }
                @보수
                공공  무효 는 onSuccess (문자열 결과) {

                    시도 {
                        된 JSONObject 된 JSONObject는 = 새로운 된 JSONObject (결과);
                        Log.e ( "태그", "= 결과 상륙"+ 된 JSONObject를);
                        문자열 성공은 jsonObject.optString ( "성공"= );
                        문자열 데이터 = jsonObject.optString ( "데이터" );
                        문자열 MSG = jsonObject.optString ( "MSG" );
                        경우 ( "true"로 .equals (성공)) {
                            Log.e ( "태그", "착륙 = 데이터"+ 데이터);
                            된 JSONObject의 JSON은 = 된 JSONObject (데이터);
                            토큰 = json.optString ( "토큰" );
                            userId를 = json.optString ( "userId를" );

                            // 내가 요구 한대로 내가 여기에 쓰기 및 변경할 수있는 적절한
                             // 상태의 사용자 정보를 얻을 수 
                            getUserInfo ();

                        } 다른 {
                            Toast.makeText (LoginActivity. , MSG, Toast.LENGTH_SHORT) .show ();
                        }
                    } 캐치 (JSONException 전자) {
                        e.printStackTrace ();
                    }
                }
                @보수
                공공  무효 의 OnError (Throwable를 전, 부울 isOnCallback) {

                }
                @보수
                공공  무효가 onCancelled (CancelledException의 CEX) {

                }
                @보수
                공공  무효 onFinished () {

                }
            });
        }

        // 휴대 전화 번호가 있는지 확인하는 코드 정보 확인을 얻을 
        개인  무효 getMobiile (문자열 모바일) {
             IF ( "" {.equals (모바일))
                Log.e ( "태그", "모바일 ="+ 모바일),
                 새로운 새 에 AlertDialog.Builder (mContext) .setTitle ( "팁") .setMessage이 (.setCancelable ( "전화 번호가 비어있을 수 없습니다") true로를 .Show) () ;
            } 다른  IF (isMobileNO (모바일) == 거짓 ) {
                 새로운 새 에 AlertDialog.Builder (mContext) .setTitle ( "팁") (.setMessage ( "올바른 전화 번호를 입력하세요") .setCancelable true로 ) .Show ();
            } 다른 {
                Log.e는 ( "태그", "정확한 전화 번호를 입력" );
                requestVerifyCode (모바일);
            }
        }

        // 코드 정보, 확인 코드 얻을 
        개인  무효 {requestVerifyCode (문자열 모바일)
            RequestParams RequestParams = 새로운 새로운 RequestParams은 ( "다음은 매개 변수의 증가의 의미를, 그래서 다시 당신에게, 확인 코드를 요청하는 인터페이스입니다");

            x.http (). 포스트 (requestParams, 새로운 Callback.ProgressCallback <문자열> () {
                @보수
                공공  무효 onWaiting () {

                }

                @보수
                공공  무효 onStarted () {

                }

                @보수
                공공  무효 onLoading (  총,  현재, 부울 isDownloading) {

                }

                @보수
                공공  무효 는 onSuccess (문자열 결과) {

                    시도 {
                        된 JSONObject jsonObject2는 = 새로운 된 JSONObject (결과);
                        Log.e ( "태그", "jsonObject2"+ jsonObject2);
                        문자열 상태 jsonObject2.getString ( "성공"= );
                        문자열 verifyCode = jsonObject2.getString ( "MSG" );
                        Log.e ( "태그"+ "== 코드를 얻을" verifyCode을),
                         IF ( "true로" .equals (상태)) {
                            Toast.makeText (. LoginActivity , verifyCode, Toast.LENGTH_SHORT) .show ();
                            startCountBack은 (); // 이 매개 변수에 대한 요청입니다 
                        } 다른 {
                            Toast.makeText (. LoginActivity , verifyCode, Toast.LENGTH_SHORT) .show ();
                        }

                    } 캐치 (JSONException 전자) {
                        e.printStackTrace ();
                    }
                }
                @보수
                공공  무효 의 OnError (Throwable를 전, 부울 isOnCallback) {
                    ex.printStackTrace ();
                }

                @보수
                공공  무효가 onCancelled (CancelledException의 CEX) {

                }

                @보수
                공공  무효 onFinished () {

                }
            });
        }

        // 정규 표현식은 전화 번호를 결정 
        공공  정적  부울 isMobileNO (전화 문자열) {
            패턴 (P)는 15 ([0-3] | | [5-9]) | (14) [5,7,9] | 17 1,3,5,6 ( "^ (13 [0-9]는 Pattern.compile를 = , 7,8] | 18 [0-9]) \\ D {8} $ " );
            정합 m = p.matcher (TEL);
            에서 System.out.println (m.matches () + "---" );
            복귀 ) (m.matches 단계;
        }

        // 작업을 계산, 코드 정보를 
        개인  무효 () {startCountBack를
            ((활동) mContext) .runOnUiThread ( 의 Runnable () {
                @보수
                공공  무효 실행 () {
                    getyanzhengma1.setText (countSeconds + "" );
                    mCountHandler.sendEmptyMessage ( 0 );
                }
            });
        }



}

 

추천

출처www.cnblogs.com/qianjinyan/p/11982927.html