在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Android平台开发 → android 获取手机验证码

android 获取手机验证码

Android平台开发

下载此实例
  • 开发语言:Java
  • 实例大小:14.64M
  • 下载次数:50
  • 浏览次数:557
  • 发布时间:2016-10-15
  • 实例类别:Android平台开发
  • 发 布 人:jerry182637
  • 文件格式:.rar
  • 所需积分:2
 相关标签: 验证码 验证

实例介绍


【核心代码】

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

标签: 验证码 验证

实例下载地址

android 获取手机验证码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

第 1 楼 蕫仲恺 发表于: 2023-04-26 21:48 20
怎么运行啊

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有1条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警