• 大小: 14.64M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2020-12-23
  • 语言: Java
  • 标签: 验证码  验证  

资源简介


【核心代码】

public class NotpwdTelActivity extends Activity implements OnClickListener {  
    String APPKEY = "11bbdb5fe3eee";  
    String APPSECRETE = "ea0f2810f804d2d1086078e438754112";  
    // 手机号输入框  
    private EditText inputPhoneEt;  
    // 验证码输入框  
    private EditText inputCodeEt;    
    // 获取验证码按钮  
    private TextView requestCodeBtn;  
    // 注册按钮  
    private Button commitBtn;  
    //计时器 
    int i = 60;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_notpwdcode);  
        //初始化控件
        init();  
    }  
  
    /** 
     * 初始化控件 
     */  
    private void init() {  
        inputPhoneEt = (EditText) findViewById(R.id.edtTel);  
        inputCodeEt = (EditText) findViewById(R.id.edtCode);  
        requestCodeBtn = (TextView) findViewById(R.id.txtObtain);  
        commitBtn = (Button) findViewById(R.id.btnCode);  
        //点击事件声明
        requestCodeBtn.setOnClickListener(this);  
        commitBtn.setOnClickListener(this);  
  
        // 启动短信验证sdk  
        SMSSDK.initSDK(this, APPKEY, APPSECRETE);  
        EventHandler eventHandler = new EventHandler(){  
            @Override  
            public void afterEvent(int event, int result, Object data) {  
                Message msg = new Message();  
                msg.arg1 = event;  
                msg.arg2 = result;  
                msg.obj = data;  
                handler.sendMessage(msg);  
            }  
        };  
        //注册回调监听接口  
        SMSSDK.registerEventHandler(eventHandler);  
    }  
  
    @Override  
    public void onClick(View v) {  
        String phoneNums = inputPhoneEt.getText().toString();  
        switch (v.getId()) {  
        case R.id.txtObtain:  
            // 1. 通过规则判断手机号  
            if (!judgePhoneNums(phoneNums)) {  
                return;  
            } // 2. 通过sdk发送短信验证  
            SMSSDK.getVerificationCode("86", phoneNums);    
            // 3. 把按钮变成不可点击,并且显示倒计时(正在获取)  
            requestCodeBtn.setClickable(false);  
            requestCodeBtn.setText("重新发送(" i ")");  
            new Thread(new Runnable() {  
                @Override  
                public void run() {  
                    for (; i > 0; i--) {  
                        handler.sendEmptyMessage(-9);  
                        if (i <= 0) {  
                            break;  
                        }  
                        try {  
                            Thread.sleep(1000);  
                        } catch (InterruptedException e) {  
                            e.printStackTrace();  
                        }  
                    }  
                    handler.sendEmptyMessage(-8);  
                }  
            }).start();  
            break;  
  
        case R.id.btnCode:  
            //将收到的验证码和手机号提交再次核对  
            SMSSDK.submitVerificationCode("86", phoneNums, inputCodeEt  
                    .getText().toString());   
            break;  
        }  
    }  
  
    /** 
     *获取验证码SDK
     */  
    @SuppressLint("HandlerLeak") Handler handler = new Handler() {  
        public void handleMessage(Message msg) {  
           if (msg.what == -9) {  
                requestCodeBtn.setText("重新发送(" i ")");  
            } else if (msg.what == -8) {  
                requestCodeBtn.setText("获取验证码");  
                requestCodeBtn.setClickable(true);  
                i = 30;  
            } else {  
                int event = msg.arg1;  
                int result = msg.arg2;  
                Object data = msg.obj;  
                Log.e("event", "event=" event "  " result   " " data);  
                if (result == SMSSDK.RESULT_COMPLETE) {  
                    // 短信注册成功后,返回MainActivity,然后提示  
                    if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {// 提交验证码成功  
                        Toast.makeText(getApplicationContext(), "提交验证码成功",  
                                Toast.LENGTH_SHORT).show();  
                        Intent intent = new Intent(NotpwdTelActivity.this,  
                                NotpwdActivity.class);  
                        intent.putExtra("telNo", inputPhoneEt.getText().toString());
                        startActivity(intent);  
                        finish();
                    } else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {  
                        Toast.makeText(getApplicationContext(), "正在获取验证码",  
                                Toast.LENGTH_SHORT).show();  
                    } else {  
                        ((Throwable) data).printStackTrace();  
                    }  
                }  
            }  
        }  
    };   
  
    /** 
     * 判断手机号码是否合理 
     *  
     * @param phoneNums 
     */  
    private boolean judgePhoneNums(String phoneNums) {  
        if (isMatchLength(phoneNums, 11)) {  
            return true;  
        }  
        Toast.makeText(this, "手机号码输入有误!",Toast.LENGTH_SHORT).show();  
        return false;  
    }  
  
    /** 
     * 判断一个字符串的位数 
     * @param str 
     * @param length 
     * @return 
     */  
    @TargetApi(Build.VERSION_CODES.GINGERBREAD) public static boolean isMatchLength(String str, int length) {  
        if (str.isEmpty()) {  
            return false;  
        } else {  
            return str.length() ==length ? true : false;  
        }  
    }    
  
    /** 
     * progressbar 
     */  
    @SuppressWarnings("unused")
private void createProgressBar() {  
        FrameLayout layout = (FrameLayout) findViewById(android.R.id.content);  
        FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(  
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);  
        layoutParams.gravity = Gravity.CENTER;  
        ProgressBar mProBar = new ProgressBar(this);  
        mProBar.setLayoutParams(layoutParams);  
        mProBar.setVisibility(View.VISIBLE);  
        layout.addView(mProBar);  
    }  
  
    @Override  
    protected void onDestroy() {  
        SMSSDK.unregisterAllEventHandler();  
        super.onDestroy();  
    }  

资源截图

代码片段和文件信息

/** Automatically generated file. DO NOT MODIFY */
package cn.android.shopCommentjerry;

public final class BuildConfig {
    public final static boolean DEBUG = true;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        475  2016-04-20 08:31  Shop_Comments\.classpath

     文件        849  2016-04-20 08:31  Shop_Comments\.project

     文件        177  2016-04-20 08:31  Shop_Comments\.settings\org.eclipse.jdt.core.prefs

     文件       3084  2016-10-12 14:44  Shop_Comments\AndroidManifest.xml

     文件       3084  2016-10-12 14:44  Shop_Comments\bin\AndroidManifest.xml

     文件       4549  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\basrt\base64Coder.class

     文件       3098  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\basrt\baseUtil.class

     文件       1230  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\basrt\ffd.class

     文件       1216  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\basrt\MyGallery$1.class

     文件        698  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\basrt\MyGallery$2.class

     文件       2463  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\basrt\MyGallery.class

     文件       1107  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\basrt\NoScrollListView.class

     文件       1008  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\basrt\ZoomBitmap.class

     文件       1294  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\AppreModel.class

     文件        524  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\AppteridAdapter$ViewHolder.class

     文件       3151  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\AppteridAdapter.class

     文件        756  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\AreaModel.class

     文件        438  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\CityAdapter$ViewHolder.class

     文件       2388  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\CityAdapter.class

     文件        760  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\CityModel.class

     文件        516  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\DeleteAdapter$ViewHolder.class

     文件       3193  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\DeleteAdapter.class

     文件       1273  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\DeleteModel.class

     文件       3577  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\ExpandableListAdapter.class

     文件        445  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\ImageAdapter$ViewHolder.class

     文件       2342  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\ImageAdapter.class

     文件       1251  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\ProviceModel.class

     文件        450  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\ProvincAdapter$ViewHolder.class

     文件       2414  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\ProvincAdapter.class

     文件        880  2016-10-15 21:59  Shop_Comments\bin\classes\cn\android\model\ProvincModel.class

............此处省略345个文件信息

评论

共有 条评论