资源简介
【核心代码】
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.xm
文件 3084 2016-10-12 14:44 Shop_Comments\bin\AndroidManifest.xm
文件 4549 2016-10-15 21:59 Shop_Comments\bin\classes\cn\android\basrt\ba
文件 3098 2016-10-15 21:59 Shop_Comments\bin\classes\cn\android\basrt\ba
文件 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个文件信息
- 上一篇:android 底部导航栏的实现(tab签切换效果)
- 下一篇:企业进销存管理系统
相关资源
- Android 生成本地验证码(验证码合集
- JavaEE 大作业 websocket与java简单的聊天
- JAVAMail+Ajax+jsp实现邮箱发送验证并验证
- Android Studio使用Mob来获取手机验证码的
- uppaal-4.1.19.zip
- 验证码识别dll库识别率95%,附调用接
- android 集成短信登录验证功能Demo
- 基于android的在线翻译app
- Android开发中短信验证码功能实现
- 验证码字体
- android 停车场
- Android基础控件——SeekBar的使用、仿淘
- 企业通讯录项目 基于SSM下的JAVA项目
- Android实现点击获取验证码60秒后重新
- ssh登录注册验证
- JSP 和 JavaBean连接sql server验证登录
- Java实现RSA加密解密数字证书生成与验
- Android记账本:SQLite+密码验证登录
- 微信公众号JS-SDK权限验证的签名
- C#通过SOAP使用HttpWebRequest调用带有身份
- javaWeb激活邮箱验证资料
- Android启动时验证AVB
- javaweb用户验证码登录session
- 自动下单工具Java,已在京东商城验证
- jsp用户注册登录数据库实现代码
- java 使用正则表达式验证电话号码的格
- 基于mvc模式的登录验证
- Java版仿QQ验证码风格图片验证码
- javawe实现登录注册验证界面连接MYSQ
- java短信验证前后台全部
评论
共有 条评论