java - Android 在 X 次尝试失败后阻止登录

标签 java android authentication

我有一个需要登录的 Android 应用程序
我尝试在 y 次尝试失败后阻止登录 x 分钟。 如果用户尝试超过 y 次,我想与系统时间进行比较,并且在 x 分钟后用户可以登录,我怎样才能实现对 android 的新手请帮助我

lgn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        uname = user.getText().toString();
        pass = passwrd.getText().toString();

        if (isConnectingToInternet()) {
            if ((passwrd.equals() == "username") || (user.equlas() == "password")) {
                Toast ->success
            }
            if(count >=4){
                // this part i dont know how to 
                //i want to block 30 minute if user tried x attemts, 
                lgnbutton->disble
            }
        }
    }
}

最佳答案

您可以使用android的CountDownTimer类,而不是使用系统时间来计算x分钟。

https://developer.android.com/reference/android/os/CountDownTimer.html

尝试失败后,您可以使用 btn.setEnabled(false) 禁用该按钮计数器完成后,您可以使用 btn.setEnabled(true) 启用按钮。 .

如果您想显示按钮再次启用的剩余时间,您还可以使用 CountDownTimer 类 ( onTick ) 的方法。 onTick将在您在 CountDownTimer() 中作为参数提到的每个时间间隔后调用.

例如,

new CountDownTimer(<total_time>, <interval>) {

     public void onTick(long millisUntilFinished) {
         //update time left
     }

     public void onFinish() {
         //enable button
     }
  }.start();

关于java - Android 在 X 次尝试失败后阻止登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47467643/

相关文章:

node.js - 在 Node.js 上使用 Passport-ldapauth 的 LDAP 身份验证失败

java - JPA query.getResultList 只会返回我的数据表的 1 行?

java - 下一个匹配即时

java - JAX-WS 和 Enunciate - 如何更改 Enunciate 的默认 XSD 命名约定

Android Studio 不会导入 Porcupine 项目

node.js - NodeJS Passport : multilogin via two strategies - serialize issue

java - 检查重复

android - 底部导航栏隐藏了 View 的一部分

Android:位图缩小质量低

react-native - 在 React Native 上通过 Auth0 进行 Instagram 身份验证(不是登录)?