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.
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.
L
Lita_Mclean
usar preferences?
pode me dá um exemplo? por q colocando assim no google vem um monte de coisas…
A
A_H_Gusukuma
No site Developer Android
Em API Guides
Data Storage
Storage Options
Shared Preferences
L
Lita_Mclean
ops desculpa, esqueci de avisar, não é android é JME…
A
A_H_Gusukuma
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.
L
Lita_Mclean
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???
A
A_H_Gusukuma
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)
Marky.Vasconcelos
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.
A
A_H_Gusukuma
Olá
É JME.
L
Lita_Mclean
Gente muito obrigada, consegui fazer:
longtimestampAtual=System.currentTimeMillis();...StringultimaData=Repository.getInstance().get("DATAERRO");longtimestampUltimaSenhaErrada=Long.parseLong(ultimaData);Stringmult=Repository.getInstance().get("MULTIPLICADOR");intmultiplicador=Integer.parseInt(mult);longtempoMinimo=multiplicador*60000;if(timestampAtual-timestampUltimaSenhaErrada<tempoMinimo){GlobalVars.put("alertMsg","Ainda não pode acessar");//mudarmensagemcanvas.load(MainApplet.getJadProperty("ALERT_SCREEN_FILE"));}else{intvalidaTentativas=Integer.parseInt(numTentativas)+1;Repository.getInstance().add("TENTATIVAS",String.valueOf(validaTentativas));Repository.getInstance().add("DATAERRO",String.valueOf(timestampAtual));intmultiplicadorFuturo=multiplicador*3;Repository.getInstance().add("MULTIPLICADOR",String.valueOf(multiplicadorFuturo));GlobalVars.put("alertMsg","Senha inválida");canvas.load(MainApplet.getJadProperty("ALERT_SCREEN_FILE"));returnfalse;}