实现获取验证码倒计时功能
来源:互联网 发布:傻瓜音乐剪辑软件 编辑:程序博客网 时间:2024/05/18 00:01
package com.gaoo.countdown;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.os.CountDownTimer;import android.support.v7.app.AppCompatActivity;import android.telephony.SmsMessage;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;//实现短信验证码自动填写功能public class NewActivity extends AppCompatActivity { private MyCount mc; private TextView tv; Button send; EditText mEtVerifyCode; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_new); mEtVerifyCode = (EditText) findViewById(R.id.et_text); send = (Button) findViewById(R.id.send); tv = (TextView)findViewById(R.id.show); mc = new MyCount(10000, 1000); send.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mc.start(); send.setEnabled(false); } }); }//end func /*定义一个倒计时的内部类*/ class MyCount extends CountDownTimer { public MyCount(long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInterval); } @Override public void onFinish() { send.setEnabled(true); tv.setText("finish"); send.setText("重新获取验证码"); } @Override public void onTick(long millisUntilFinished) { tv.setText(millisUntilFinished / 1000 + " 秒后可重发"); send.setText(millisUntilFinished / 1000 + " 秒后可重发"); // Toast.makeText(NewActivity.this, millisUntilFinished / 1000 + "", Toast.LENGTH_LONG).show();//toast有显示时间延迟 } }// -------- 实现短信验证码自动填写功能------ private SmsReciver smsReciver = new SmsReciver(); /** 收到短信Action **/ String ACTION_SMS_RECIVER = "android.provider.Telephony.SMS_RECEIVED"; /** * 注册广播接受者监听短信验证码自动回写 可在onCreate()中进行注册; */ private void registSmsReciver() { IntentFilter filter = new IntentFilter(); filter.addAction(ACTION_SMS_RECIVER); // 设置优先级 不然监听不到短信 filter.setPriority(1000); registerReceiver(smsReciver, filter); } /** * 短信广播接受者 用户监听短信,自动填写验证码 */ private class SmsReciver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Object[] objs = (Object[]) intent.getExtras().get("pdus"); for (Object obj : objs) { byte[] pdu = (byte[]) obj; SmsMessage sms = SmsMessage.createFromPdu(pdu); // 短信的内容 String message = sms.getMessageBody(); Log.d("log", "message " + message); // 短息的手机号,如果你们公司发送验证码的号码是固定的这里可以进行一个号码的校验 String from = sms.getOriginatingAddress(); Log.d("log", "from " + from); analysisVerify(message); } } } /** * 解析短信并且回写 这里解析的是纯数字的短信,如果小伙伴的验证码包含字母的话,可用正则替换 * * @param message */ private void analysisVerify(String message) { char[] msgs = message.toCharArray(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < msgs.length; i++) { if ('0' <= msgs[i] && msgs[i] <= '9') { sb.append(msgs[i]); } } mEtVerifyCode.setText(sb.toString()); } @Override protected void onDestroy() { super.onDestroy(); // 取消短信广播注册 if (smsReciver != null) { unregisterReceiver(smsReciver); smsReciver = null; } }}
0 0
- Handler实现验证码获取倒计时功能
- 实现获取验证码倒计时功能
- 获取验证码倒计时功能
- Android实现获取验证码的倒计时功能
- Android实现获取验证码的倒计时功能
- Android实现获取验证码的倒计时功能
- Android实现获取验证码的倒计时功能
- Android获取验证码倒计时功能(CountDownTimer实现)
- Android获取验证码倒计时功能(Timer实现)
- 获取验证码按钮,点击后倒计时功能的实现
- 注册时手机获取验证码倒计时,使用CountDownTimer类轻松实现倒计时功能
- iOS-获取验证码中的倒计时功能
- android获取验证码倒计时功能
- android 获取短信验证码倒计时功能
- 实现 发送验证码的倒计时功能
- Android验证码倒计时功能实现
- iOS - 实现验证码倒计时功能
- Ionic Angular 实现验证码倒计时功能
- html5编程工具
- 计算机视觉牛人博客和代码汇总(全)
- find a subarray that contains the largest sum, constraint that sum is less than k
- Fragment、FragmentActivity 和Actvity区别
- 自研究网络通信库
- 实现获取验证码倒计时功能
- 用ScheduledExecutorService实现任务调度
- Spring的注入案例分析(设值注入和构造注入)
- 原生js ajax get与post区别
- [php]创建对象的几种形式
- NYOJ94题
- git常用命令
- 在java源文件中指定TextView文本显示内容
- Android Studio如何发布APK