短信验证码
来源:互联网 发布:人工智能计算器电脑版 编辑:程序博客网 时间:2024/06/07 14:37
1.Mob官网
2.使用3.0版本以下的(因为简单)
3.按照集成路径开始集成
public class RegisterActivity extends BaseAcitivty implements View.OnClickListener { private String TAG="msg"; private EditText edtRegisterPhone,edtRegisterPassword,edtRegisterCode; private Button btnRegisterCode,btnRegisterSend; private Timer timer; private int count=60; private TextView fanhui; private Handler mHandler=new Handler(){ @Override public void handleMessage(Message msg) { int size= (int) msg.obj; if (size>0){ btnRegisterCode.setText(size+"秒后获取验证码"); btnRegisterCode.setEnabled(false); }else{ btnRegisterCode.setEnabled(true); btnRegisterCode.setText("重新获取验证码"); if (timer != null) { timer.cancel(); } count = 60; } } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); initView(); btnRegisterCode.setOnClickListener(this); btnRegisterSend.setOnClickListener(this); fanhui.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); } private void initView() { edtRegisterPhone= (EditText) findViewById(R.id.edt_register_phone); edtRegisterPassword= (EditText) findViewById(R.id.edt_register_password); edtRegisterCode= (EditText) findViewById(R.id.edt_register_code); btnRegisterCode= (Button) findViewById(R.id.btn_register_code); btnRegisterSend= (Button) findViewById(R.id.btn_register_send); fanhui= (TextView) findViewById(R.id.fanhui); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_register_code: String phone = edtRegisterPhone.getText().toString().trim(); if (!checkPhone(phone)) {//对手机号是否正确进行正则表达式校验 Toast.makeText(this, "请输入正确的手机号", Toast.LENGTH_SHORT).show(); } else { EventHandler eh = new EventHandler() { @Override public void afterEvent(int event, int result, Object data) { if (result == SMSSDK.RESULT_COMPLETE) { Log.i(TAG, "afterEvent: 回调完成"); //回调完成 if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) { Log.i(TAG, "afterEvent: 提交验证码成功"); // 校验成功,可以把数据提交给服务器,做跳转 // 提交验证码成功 } else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) { Log.i(TAG, "afterEvent: 获取验证码成功"); //获取验证码成功 } else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) { Log.i(TAG, "afterEvent: 返回支持发送验证码的国家列表"); //返回支持发送验证码的国家列表 } } else { ((Throwable) data).printStackTrace(); } } }; SMSSDK.registerEventHandler(eh); //注册短信回调 SMSSDK.getVerificationCode("+86", phone); timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { if (count > 0) { count--; } Message msg = Message.obtain(); msg.obj = count; mHandler.sendMessage(msg); } }, 0, 1000); } break; case R.id.btn_register_send: String Phone=edtRegisterPhone.getText().toString().trim(); String code=edtRegisterCode.getText().toString().trim(); SMSSDK.submitVerificationCode("86",Phone,code); Intent intent=new Intent(RegisterActivity.this,MainActivity.class); startActivity(intent); break; } } private boolean checkPhone(String phone) { return CheckUtils.isPhone(phone); }}public class CheckUtils { /** * 验证手机格式 */ public static boolean isPhone(String phone) { /* 移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188 联通:130、131、132、152、155、156、185、186 电信:133、153、180、189、(1349卫通) 总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9 */ String num = "[1][358]\\d{9}";//"[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。 if (TextUtils.isEmpty(phone)) { return false; } else { //matches():字符串是否在给定的正则表达式匹配 return phone.matches(num); } }}
阅读全文
0 0
- 手机验证码短信
- 短信验证码倒计时
- 短信验证码
- 实现短信验证码
- 短信验证码
- iOS 短信验证码
- VertificationCode---短信验证码
- 发送短信验证码
- sharesdk 短信验证码
- 产生短信验证码
- 短信验证码
- 短信验证码相关
- 短信验证码服务
- 短信验证码
- 短信验证码
- 短信验证码
- 短信验证码
- 获取短信验证码
- poj-1837
- spring配置文件xml文件开头总是有个红叉,是找不到schema文件
- 51nod2006 飞行员配对(二分图最大匹配)匈牙利算法
- NAT技术与代理服务器调研
- sort-list
- 短信验证码
- java创建文件夹不存在的文件
- 配置JAVA环境的时候,环境变量中administrator的用户变量和系统变量的区别?
- PHP中self和this的用法区别
- 流媒体开发的有用网址收藏
- =="和Equals的区别
- Java异常机制
- Linux下安装Zookeeper
- tornado版本及多线程情况梳理