请帮找回手机号18673207280的国外手机号短信验证码码

短信验证码模拟接收系统的说明_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
短信验证码模拟接收系统的说明
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩6页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢地址:南昌市二七南路495号海林大厦11层
网站:/sms/
友情链接:
短信验证码通知android(12)
 今天写一个常见的功能——手机app中注册或绑定手机号的获取验证码的功能。也就是短信验证功能
  具体效果就是,你在注册界面填写手机号,点击获取验证码按钮,---然后会收到验证短信,填入验证码后点击注册按钮,如果验证正确就可以跳转到另外一个界面
  1.首先大家需要在mob官网注册一个账号,mob是一个免费的短信验证平台
  2.在后台创建应用
  3.下载对应的sdk
  4.将sdk作为一个library导入到你的项目中
  5.现在就可以在你的项目中编写代码使用mob提供的这个功能了
  具体代码如下:
  首先配置文件加入权限:
&android:name=&android.permission.READ_CONTACTS&&&&&&&android:name=&android.permission.READ_PHONE_STATE&&&&&&
&android:name=&android.permission.WRITE_EXTERNAL_STORAGE&&&&&&&android:name=&android.permission.ACCESS_NETWORK_STATE&&&&&&
&android:name=&android.permission.ACCESS_WIFI_STATE&&&&&&android:name=&android.permission.INTERNET&&&&&&
&android:name=&android.permission.RECEIVE_SMS&&&&&&&android:name=&android.permission.GET_TASKS&&&&&&
&android:name=&android.permission.ACCESS_FINE_LOCATION&&&&&
  然后声明(这是固定的不能修改,直接复制粘贴到你的配置文件就行)
&&&&android:name=&cn.smssdk.SMSSDKUIShell&&&&&
android:configChanges=&keyboardHidden|orientation|screenSize&&&&&android:theme=&@android:style/Theme.Translucent.NoTitleBar&&&&&
android:windowSoftInputMode=&stateHidden|adjustResize&&&&&
  注册界面xml布局文件
&version=&1.0&&encoding=&utf-8&&&&&&xmlns:android=&/apk/res/android&&&&&
&&&&android:layout_width=&match_parent&&&&&&&&&android:layout_height=&match_parent&&&&&
&&&&android:orientation=&vertical&&&&&&&&&&
&&&&&&&&&&&&&&&&android:id=&@+id/login_input_phone_et&&&&&
&&&&&&&&android:layout_width=&280dp&&&&&&&&&&&&&android:layout_height=&wrap_content&&&&&
&&&&&&&&android:layout_alignParentTop=&true&&&&&&&&&&&&&android:layout_centerHorizontal=&true&&&&&
&&&&&&&&android:layout_marginTop=&107dp&&&&&&&&&&&&&android:ems=&10&&&&&
&&&&&&&&android:hint=&请输入手机号&&&&&&&&&&&&&android:inputType=&phone&&&&&&
&&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&android:id=&@+id/login_input_code_et&&&&&&&&&&&&&android:layout_width=&170dp&&&&&
&&&&&&&&android:layout_height=&wrap_content&&&&&&&&&&&&&android:layout_alignLeft=&@+id/login_input_phone_et&&&&&
&&&&&&&&android:layout_below=&@+id/login_input_phone_et&&&&&&&&&&&&&android:layout_marginTop=&44dp&&&&&
&&&&&&&&android:hint=&请输入验证码&&&&&&&&&&&&&android:inputType=&textPassword&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&&&&&android:id=&@+id/login_request_code_btn&&&&&
&&&&&&&&android:layout_width=&wrap_content&&&&&&&&&&&&&android:layout_height=&wrap_content&&&&&
&&&&&&&&android:layout_alignRight=&@+id/login_input_phone_et&&&&&&&&&&&&&android:layout_alignTop=&@+id/login_input_code_et&&&&&
&&&&&&&&android:text=&获取验证码&&&&&&&&&&
&&&&&&&&&&&&&&&&android:id=&@+id/login_commit_btn&&&&&
&&&&&&&&android:layout_width=&280dp&&&&&&&&&&&&&android:layout_height=&wrap_content&&&&&
&&&&&&&&android:layout_alignLeft=&@+id/login_input_code_et&&&&&&&&&&&&&android:layout_below=&@+id/login_input_code_et&&&&&
&&&&&&&&android:layout_marginTop=&44dp&&&&&&&&&&&&&android:text=&注册&&&&&&
  注册界面activity
package&com.mobdemo.&&&&&&&&
&&&&import&cn.smssdk.EventH&&&&
import&cn.smssdk.SMSSDK;&&&&import&android.app.A&&&&
import&android.content.I&&&&import&android.os.B&&&&
import&android.os.H&&&&import&android.os.M&&&&
import&android.text.TextU&&&&import&android.util.L&&&&
import&android.view.G&&&&import&android.view.V&&&&
import&android.view.View.OnClickL&&&&import&android.widget.B&&&&
import&android.widget.EditT&&&&import&android.widget.FrameL&&&&
import&android.widget.ProgressB&&&&import&android.widget.T&&&&
import&android.widget.FrameLayout.LayoutP&&&&&&&&
public&class&LoginActivity&extends&Activity&implements&OnClickListener&{&&&&&&&&String&APPKEY&=&&5&;&&&&
&&&&String&APPSECRETE&=&&69d0e6cb16&;&&&&&&&&
&&&&&&&&&&private&EditText&inputPhoneEt;&&&&
&&&&&&&&&&
&&&&private&EditText&inputCodeEt;&&&&&&&&
&&&&&&&&&&private&Button&requestCodeB&&&&
&&&&&&&&&&
&&&&private&Button&commitB&&&&&&&&
&&&&&&&&&&int&i&=&30;&&&&
&&&&&&&&@Override&&&&
&&&&protected&void&onCreate(Bundle&savedInstanceState)&{&&&&&&&&&&&&super.onCreate(savedInstanceState);&&&&
&&&&&&&&setContentView(R.layout.activity_login);&&&&&&&&
&&&&&&&&init();&&&&&&&&}&&&&
&&&&private&void&init()&{&&&&&&&&&&&&inputPhoneEt&=&(EditText)&findViewById(R.id.login_input_phone_et);&&&&
&&&&&&&&inputCodeEt&=&(EditText)&findViewById(R.id.login_input_code_et);&&&&&&&&&&&&requestCodeBtn&=&(Button)&findViewById(R.id.login_request_code_btn);&&&&
&&&&&&&&commitBtn&=&(Button)&findViewById(R.id.login_commit_btn);&&&&&&&&&&&&requestCodeBtn.setOnClickListener(this);&&&&
&&&&&&&&commitBtn.setOnClickListener(this);&&&&&&&&
&&&&&&&&&&&&&&&&&&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&=&&&&&&&&&&&&&&&&&&&&&msg.arg2&=&&&&&
&&&&&&&&&&&&&&&&msg.obj&=&&&&&&&&&&&&&&&&&&&&&handler.sendMessage(msg);&&&&
&&&&&&&&&&&&}&&&&&&&&&&&&};&&&&
&&&&&&&&&&&&&&&&&&SMSSDK.registerEventHandler(eventHandler);&&&&
&&&&}&&&&&&&&
&&&&@Override&&&&&&&&public&void&onClick(View&v)&{&&&&
&&&&&&&&String&phoneNums&=&inputPhoneEt.getText().toString();&&&&&&&&&&&&switch&(v.getId())&{&&&&
&&&&&&&&case&R.id.login_request_code_btn:&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&if&(!judgePhoneNums(phoneNums))&{&&&&&&&&&&&&&&&&&&&&return;&&&&
&&&&&&&&&&&&}&&&&&&&&&&&&&&&SMSSDK.getVerificationCode(&86&,&phoneNums);&&&&
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&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.login_commit_btn:&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&SMSSDK.submitVerificationCode(&86&,&phoneNums,&inputCodeEt&&&&
&&&&&&&&&&&&&&&&&&&&.getText().toString());&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&break;&&&&&&&&&&&&}&&&&
&&&&}&&&&&&&&
&&&&&&&&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.&&&&&&&&&&&&&&&&&&&&Log.e(&event&,&&event=&&+&event);&&&&
&&&&&&&&&&&&&&&&if&(result&==&SMSSDK.RESULT_COMPLETE)&{&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&if&(event&==&SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE)&{&&&&&&&&&&&&&&&&&&&&&&&&&&Toast.makeText(getApplicationContext(),&&提交验证码成功&,&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Toast.LENGTH_SHORT).show();&&&&&&&&&&&&&&&&&&&&&&&&&&&&Intent&intent&=&new&Intent(LoginActivity.this,&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&MainActivity.class);&&&&&&&&&&&&&&&&&&&&&&&&&&&&startActivity(intent);&&&&
&&&&&&&&&&&&&&&&&&&&}&else&if&(event&==&SMSSDK.EVENT_GET_VERIFICATION_CODE)&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&Toast.makeText(getApplicationContext(),&&正在获取验证码&,&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Toast.LENGTH_SHORT).show();&&&&&&&&&&&&&&&&&&&&&&&&}&else&{&&&&
&&&&&&&&&&&&&&&&&&&&&&&&((Throwable)&data).printStackTrace();&&&&&&&&&&&&&&&&&&&&&&&&}&&&&
&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&}&&&&
&&&&&&&&}&&&&&&&&};&&&&
&&&&&&&&private&boolean&judgePhoneNums(String&phoneNums)&{&&&&
&&&&&&&&if&(isMatchLength(phoneNums,&11)&&&&&&&&&&&&&&&&&&&&&&&isMobileNO(phoneNums))&{&&&&
&&&&&&&&&&&&return&true;&&&&&&&&&&&&}&&&&
&&&&&&&&Toast.makeText(this,&&手机号码输入有误!&,Toast.LENGTH_SHORT).show();&&&&&&&&&&&&return&false;&&&&
&&&&}&&&&&&&&
&&&&public&static&boolean&isMatchLength(String&str,&int&length)&{&&&&&&&&&&&&if&(str.isEmpty())&{&&&&
&&&&&&&&&&&&return&false;&&&&&&&&&&&&}&else&{&&&&
&&&&&&&&&&&&return&str.length()&==&length&?&true&:&false;&&&&&&&&&&&&}&&&&
&&&&}&&&&&&&&
&&&&&&&&public&static&boolean&isMobileNO(String&mobileNums)&{&&&&
&&&&&&&&&&
&&&&&&&&&&&&String&telRegex&=&&[1][358]\\d{9}&;&&
&&&&&&&&if&(TextUtils.isEmpty(mobileNums))&&&&&&&&&&&&&&&&return&false;&&&&
&&&&&&&&else&&&&&&&&&&&&&&&&return&mobileNums.matches(telRegex);&&&&
&&&&}&&&&&&&&
&&&&&&&&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();&&&&
&&&&}&&&&}&&&&
  验证成功的界面我就不写了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:7678次
排名:千里之外
(1)(1)(1)(6)(3)(2)当前位置 & &
& 手机短信验证码真的安全吗?
手机短信验证码真的安全吗?
09:00:42&&出处:&&作者:
编辑:小呆 &&)
让小伙伴们也看看:
文章观点支持
当前平均分:0(0 次打分)
[07-04][07-04][07-04][07-03][07-03][07-03][07-03][07-03][07-03][07-03]
登录驱动之家
没有帐号?
用合作网站帐户直接登录9236人阅读
【Android进阶旅程】(39)
我们今天所使用的方案只是android手机设备集成短信验证码功能的方案之一。
我们所采用的方案是使用的短信验证sdk。
程序的界面如下所示:
实现步骤:
1.到聚合数据官网上申请短信验证SDK数据,生成AppKey,如下图所示:
2.配置工程,把相关的sdk库导入到Project中去,:
3.配置AndroidManifest.xml文件,在Application节点中加入以下代码:
&meta-data
android:name=&JUHE_KEY&
android:value=&你的appkey& /&
4.在src中加入MyApplication类,并且在AndroidManifest.xml文件中将application的name属性设置为src中定义的MyApplication(如android:name=&com.bear.smscaptcha.MyApplication&),在MyApplication的onCreate()方法中调用接口初始化:
import com.thinkland.monF
import android.app.A
public class MyApplication extends Application {
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
// 在使用SDK各组件之前初始化context信息,传入ApplicationContext
// 注意该方法要再setContentView方法之前实现
* 初始化方法
* @param context
* @needFriends 是否需要好友功能
CommonFun.initialize(getApplicationContext(), false);
5.完成主Demo类,内容如下:
import android.app.A
import android.content.pm.ActivityI
import android.os.B
import android.text.E
import android.text.H
import android.text.TextW
import android.view.V
import android.view.View.OnClickL
import android.widget.B
import android.widget.EditT
import android.widget.ImageV
import android.widget.TextV
import android.widget.T
import com.thinkland.sdk.sms.SMSC
import com.thinkland.sdk.util.BaseData.ResultCallB
public class MainActivity extends Activity implements OnClickListener{
private SMSCaptcha mC //短信sdk主对象
private EditText etPhoneN
//手机号码输入框
private ImageView ivC
//清除已经输入内容的图标
private Button btnN //下一步按钮
private EditText etCaptchaN //验证码输入框
private Button btnS //提交验证码
private ImageView ivSmsC
private TextView tvUnreceiveI
private static final int RETRY_INTERVAL = 60; //设置一个倒计时时间
private int time = RETRY_INTERVAL;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.activity_main);
initData();
setupViews();
private void initData(){
//初始化sdk主操作对象
mCaptcha = SMSCaptcha.getInstance();
* 初始化界面控件
private void setupViews(){
btnNext = (Button) findViewById(R.id.btn_next);
ivClear = (ImageView) findViewById(R.id.iv_clear);
btnNext.setOnClickListener(this);
ivClear.setOnClickListener(this);
etCaptchaNum = (EditText) findViewById(R.id.et_sms_captcha);
btnSubmit = (Button) findViewById(R.id.btn_submit);
ivSmsClear = (ImageView) findViewById(R.id.iv_sms_clear);
btnSubmit.setOnClickListener(this);
ivSmsClear.setOnClickListener(this);
tvUnreceiveIdentify = (TextView) findViewById(R.id.tv_unreceive_identify);
etPhoneNum = (EditText) findViewById(R.id.et_write_phone);
etPhoneNum.setText(&&);
etPhoneNum.requestFocus();
etPhoneNum.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
refreshViews(arg0);
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
//根据edittext的内容来判断是否应当出现“清除所有”的按钮x
private void refreshViews(CharSequence s){
if(s.length() &0){
btnNext.setEnabled(true);
ivClear.setVisibility(View.VISIBLE);
btnNext.setEnabled(false);
ivClear.setVisibility(View.GONE);
//倒计时方法
private void countDown(){
new Thread(new
Runnable() {
public void run() {
while(time-- & 0){
final String unReceive = MainActivity.this.getResources().getString(R.string.smssdk_receive_msg, time);
runOnUiThread(new Runnable() {
public void run() {
tvUnreceiveIdentify.setText(Html.fromHtml(unReceive));
tvUnreceiveIdentify.setEnabled(false);
Thread.sleep(1000);
} catch (Exception e) {
// TODO: handle exception
time = RETRY_INTERVAL;
}).start();
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_next:
//删除掉字符串中所有的空格
String phone = etPhoneNum.getText().toString().trim().replace(&\\s*&, &&);
* 请求短信验证码
* code 返回码:
服务器: 0 成功; 1 错误;
本地: -2 本地网络异常; -3 服务器网络异常;-4 解析错误;-5初始化异常
reason 返回信息 成功或错误原因.
result 返回结果,JSON格式.错误或者无返回值时为空.
mCaptcha.sendCaptcha(phone, new ResultCallBack() {
public void onResult(int code, String reason, String result) {
// TODO Auto-generated method stub
if(code == 0){
//调用成功
countDown();
case R.id.iv_clear:
etPhoneNum.getText().clear();
case R.id.btn_submit:
String phoneNumber = etPhoneNum.getText().toString().trim().replace(&\\s*&, &&);
String code = etCaptchaNum.getText().toString().trim().replace(&\\s*&, &&);
* 验证短信验证码
* code 返回码:
服务器: 0 成功; 1 错误;
本地: -2 本地网络异常; -3 服务器网络异常;-4 解析错误;-5初始化异常
reason 返回信息 成功或错误原因.
result 返回结果,JSON格式.错误或者无返回值时为空.
mitCaptcha(phoneNumber, code, new ResultCallBack() {
public void onResult(int code, String reason, String result) {
// TODO Auto-generated method stub
if(code == 0){
//短信验证成功
Toast.makeText(MainActivity.this, &验证成功!!!!!!!!&, Toast.LENGTH_LONG).show();
//验证失败
Toast.makeText(MainActivity.this, &失败!!!!!!!!& + reason, Toast.LENGTH_LONG).show();
case R.id.iv_sms_clear:
最后,附上demo代码的工程源码压缩包:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:360646次
积分:4523
积分:4523
排名:第4567名
原创:164篇
评论:127条
(5)(3)(1)(20)(1)(12)(6)(4)(5)(13)(20)(18)(5)(3)(9)(1)(2)(1)(6)(15)(10)(1)(4)(2)(2)

我要回帖

更多关于 qq找回密码短信验证码 的文章

 

随机推荐