Resgatar um cartão de transporte público

É possível resgatar os cartões da seguinte maneira:

É possível exigir segurança extra para quando os usuários resgatam ou acessam o cartão. Veja mais detalhes em Proteger com o bloqueio de tela.

Leitura de códigos de barras

Ajude os clientes na verificação do cartão anexando um código de barras.

Código de barras estático

Para mostrar um código de barras estático, defina object.barcode. A API fornece vários tipos de códigos de barras. Para ver mais detalhes, confira o tipo Barcode.

Código de barras rotativo

Para ter mais segurança, é possível exibir um código de barras rotativo configurando object.rotatingBarcode. Os códigos de barras rotativos são semelhantes aos normais, mas mudam com frequência periódica, normalmente a cada minuto, e o terminal/leitor é programado para aceitar apenas o código mais recente. Isso reduz os riscos associados à captura de tela de códigos de barras, especialmente em caso de roubo ou revenda não autorizada de ingressos. Para ver mais detalhes, confira o tipo RotatingBarcode.

Animação de segurança

Outra maneira de evitar abusos de captura de tela é usando a animação de segurança do código de barras, que auxilia a verificação humana de um cartão.

A animação de segurança aparece como um contorno cintilante ao redor do código de barras do cartão. Essa animação piscante é acionada somente quando o dispositivo está em movimento. Assim, basta inclinar o dispositivo para testar a validade do cartão. Por outro lado, segurar o dispositivo parado apenas faz a animação colorida de segurança ser ativada repetidamente.

Para ativar a animação de segurança, na classe do cartão, defina AnimationType do campo SecurityAnimation como FOIL_SHIMMER. A animação de segurança não é compatível com os códigos de barras rotativos, somente com os estáticos.

Veja na Figura 1 abaixo um exemplo de como a animação de segurança aparece quando está ativada:

Brilho da animação de segurança

Figura 1.

Proteger com o bloqueio de tela

Para proteger o acesso do cliente a um cartão, exija o bloqueio de tela sempre que ele adicionar ou acessar um. Isso pode ser feito configurando class.viewUnlockRequirement. Para ver mais detalhes, confira o tipo ViewUnlockRequirement.