查看: 225|回复: 1

[Android常见问题] smssdk每次点开APP都要重新验证 怎么让APP只验证一次呢

[复制链接]

Rank: 1

主题:
帖子:
积分:
0

[Android常见问题] smssdk每次点开APP都要重新验证 怎么让APP只验证一次呢

[复制链接]
225 1 | 发表于 2018-4-12 17:10:01 |阅读模式 | |
我用smssdk验证成功后,之后每次点开APP都要重新验证,怎么能让APP只验证一次呢

下面是验证代码


public class MainActivity extends Activity implements OnClickListener {
        private ImageButton imgbut;
        private long firsttime = 0;
         private EditText etPhoneNumber;    // 电话号码
          private Button sendVerificationCode;  // 发送验证码
          private EditText etVerificationCode;  // 验证码
          private Button nextStep;        // 下一步
         
          private String phoneNumber;     // 电话号码
          private String verificationCode;  // 验证码
         
          private boolean flag;  // 操作是否成功


        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                 // MobSDK.init(this, "251d45efbeddd", "6f7f245974ae35e3a50b49b8010e5da2");
                  init(); // 初始化控件、注册点击事件

                    final Context context = MainActivity.this;            // context
                    final String AppKey = "251d45efbeddd";            // AppKey
                    final String AppSecret = "6f7f245974ae35e3a50b49b8010e5da2"; // AppSecret
                 
                    MobSDK.init(context, AppKey, AppSecret);      // 初始化 SDK 单例,可以多次调用
                    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);   // 注册回调接口
                  }
                 
                  private void init() {
                    etPhoneNumber = (EditText) findViewById(R.id.edit_phone_number);
                    sendVerificationCode = (Button) findViewById(R.id.btn_send_verification_code);
                    etVerificationCode = (EditText) findViewById(R.id.edit_verification_code);
                    nextStep = (Button) findViewById(R.id.btn_next_step);
                    sendVerificationCode.setOnClickListener(this);
                    nextStep.setOnClickListener(this);
                  }

                  public void onClick(View v) {
                            switch (v.getId()) {
                              case R.id.btn_send_verification_code:
                                if (!TextUtils.isEmpty(etPhoneNumber.getText())) {
                                  if (etPhoneNumber.getText().length() == 11) {
                                    phoneNumber = etPhoneNumber.getText().toString();
                                    SMSSDK.getVerificationCode("86", phoneNumber); // 发送验证码给号码的 phoneNumber 的手机
                                    etVerificationCode.requestFocus();
                                  }
                                  else {
                                    Toast.makeText(this, "请输入完整的电话号码", Toast.LENGTH_SHORT).show();
                                    etPhoneNumber.requestFocus();
                                  }
                                } else {
                                  Toast.makeText(this, "请输入电话号码", Toast.LENGTH_SHORT).show();
                                  etPhoneNumber.requestFocus();
                                }
                                break;
                         
                              case R.id.btn_next_step:
                                if (!TextUtils.isEmpty(etVerificationCode.getText())) {
                                  if (etVerificationCode.getText().length() == 4) {
                                    verificationCode = etVerificationCode.getText().toString();
                                    SMSSDK.submitVerificationCode("86", phoneNumber, verificationCode);
                                    flag = false;
                                  } else {
                                    Toast.makeText(this, "请输入完整的验证码", Toast.LENGTH_SHORT).show();
                                    etVerificationCode.requestFocus();
                                  }
                                } else {
                                  Toast.makeText(this, "请输入验证码", Toast.LENGTH_SHORT).show();
                                  etVerificationCode.requestFocus();
                                }
                                break;
                         
                              default:
                                break;
                            }
                          }
                         
                          Handler handler = new Handler() {
                            @Override
                            public void handleMessage(Message msg) {
                              super.handleMessage(msg);
                              int event = msg.arg1;
                              int result = msg.arg2;
                              Object data = msg.obj;
                         
                              if (result == SMSSDK.RESULT_COMPLETE) {
                                // 如果操作成功
                                if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
                                  // 校验验证码,返回校验的手机和国家代码
                                  Toast.makeText(MainActivity.this, "验证成功", Toast.LENGTH_SHORT).show();
                                  Intent intent = new Intent(MainActivity.this, TextMainActivity.class);
                                  startActivity(intent);
                                } else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {
                                  // 获取验证码成功,true为智能验证,false为普通下发短信
                                  Toast.makeText(MainActivity.this, "验证码已发送", Toast.LENGTH_SHORT).show();
                                } else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) {
                                  // 返回支持发送验证码的国家列表
                                }
                              } else {
                                // 如果操作失败
                                if (flag) {
                                  Toast.makeText(MainActivity.this, "验证码获取失败,请重新获取", Toast.LENGTH_SHORT).show();
                                  etPhoneNumber.requestFocus();
                                } else {
                                  ((Throwable) data).printStackTrace();
                                  Toast.makeText(MainActivity.this, "验证码错误", Toast.LENGTH_SHORT).show();
                                }
                              }
                            }
                          };
                         
                          @Override
                          protected void onDestroy() {
                            super.onDestroy();
                            SMSSDK.unregisterAllEventHandler(); // 注销回调接口
                          }

        @Override
        public void onBackPressed() {
                // TODO Auto-generated method stub
                long secondtime = System.currentTimeMillis(); // 获取当前电脑时间的毫秒数。1970-1-1
                                                                                                                // 00:00:00
                if (secondtime - firsttime > 2000) {
                        Toast.makeText(MainActivity.this, "再按一次退出程序" + secondtime,
                                        Toast.LENGTH_LONG).show();
                        firsttime = secondtime;
                } else {
                        finish();
                        super.onBackPressed();
                }
        }



}


Rank: 5Rank: 5

主题:
帖子:
积分:
0
发表于 2018-4-12 17:22:16 |
您好  短信验证码sdk只是实现发送短信验证码的功能,具体在什么场景下验证是您自己来写的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

技术支持
免费咨询 | 24小时在线
快速回复 返回顶部 返回列表