Eu tenho um campo onde eu coloco uma senha e tenho q seguir a seguinte regra:
"Após a quarta tentativa de acesso com senha incorreta, o aplicativo ficará bloqueado pelo período de 1 min. Após novo conjunto de 4 tentativas sem sucesso, o aplicativo ficará bloqueado pelo período de 3 min. (fator multiplicador de 3), e assim sucessivamente.
Ex.: 1º bloqueio: 1 min. de espera;
2º bloqueio: 3 min. de espera;
3º bloqueio: 9 min. de espera;
4º bloqueio: 27 min. de espera, e assim por diante.
Fator multiplicador: 3
O tempo será zerado após a primeira tentativa de acesso bem sucedida ou no dia seguinte, o que ocorrer primeiro."
Alguém sabe me dizer como fazer isso???
Usa o preferences, grava os dados da última tentativa, o número da tentativa, data/hora e se ok ou não.
Aí é recuperar os dados, se ok liberar o app (se for a mesma data), se não verificar se passou o tempo de acordo com o número da tentativa.
Se já pode checar novamente, liberar a tentativa, checar e gravar. Se ok liberar.
usar preferences?
pode me dá um exemplo? por q colocando assim no google vem um monte de coisas…
No site Developer Android
Em API Guides
Data Storage
Storage Options
Shared Preferences
ops desculpa, esqueci de avisar, não é android é JME…
Então, cria uma classe com essas informações, implemente a interface serializable e grave um arquivo com o ObjetctOutputStream (e leia com ObjectInputStream).
Não conheço o JME.
então já consigo pegar a data, hora e tentativas e gravar para q depois eu possa pegar…mas agora minha dúvida é como faria essa parte:
na primeira tentativa, se deu erro, o usuario tem que ficar um minuto sem conseguir tentar… se o usuário tentar novamente como posso ver se já passou 1 min?
vc sabe me dizer???
Se estiver usando Date, basta pegar a data atual e usando getTime() fazer a diferença com a data salva e comparar com 60000 (= 1 minuto)
Acho que é possivel você fazer isso com duas variaveis no SharedPreferences, você guarda o ultimo timestamp que o cara acessou e quantas tentativas ele errou. Dai basta incrementar de acordo com as suas regras.
Gente muito obrigada, consegui fazer:
[code]long timestampAtual = System.currentTimeMillis();
.
.
.
String ultimaData = Repository.getInstance().get(“DATAERRO”);
long timestampUltimaSenhaErrada = Long.parseLong(ultimaData);
String mult = Repository.getInstance().get(“MULTIPLICADOR”);
int multiplicador = Integer.parseInt(mult);
long tempoMinimo = multiplicador * 60000;
if(timestampAtual - timestampUltimaSenhaErrada < tempoMinimo){
GlobalVars.put(“alertMsg”, “Ainda não pode acessar”);// mudar mensagem
canvas.load(MainApplet.getJadProperty(“ALERT_SCREEN_FILE”));
} else{
int validaTentativas = Integer.parseInt(numTentativas)+ 1;
Repository.getInstance().add(“TENTATIVAS”, String.valueOf(validaTentativas));
Repository.getInstance().add(“DATAERRO”, String.valueOf(timestampAtual));
int multiplicadorFuturo = multiplicador * 3;
Repository.getInstance().add(“MULTIPLICADOR”, String.valueOf(multiplicadorFuturo));
GlobalVars.put(“alertMsg”, “Senha inválida”);
canvas.load(MainApplet.getJadProperty(“ALERT_SCREEN_FILE”));
return false;
}[/code]
é basicamente isso…