Posso acessar as impressões digitais do meu telefone Android para desenvolver um aplicativo?
Seguir isto
Android Fingerprint APIs estão trazendo a autenticação do usuário para um nível totalmente novo, tornando-o rápido e seguro. Desbloquear um telefone com um único toque é um dos meus recursos favoritos em Marshmallow e eu realmente gostaria que houvesse mais aplicativos lá fora usando identificação por toque. O reconhecimento de impressões digitais em si não é novidade, mas o suporte a nível de SO no Android tem sido muito esperado. Num futuro próximo, vai eliminar a necessidade de integrar SDKs de impressão digital específicos de fabricantes de dispositivos como a Samsung, o que, sem dúvida, seria um grande alívio para os desenvolvedores de aplicativos.
Esta visão geral vai familiarizá-lo com o fluxo de trabalho para usar o Android 6.0 Fingerprint APIs com base em projetos de amostra do Google. Alguns pontos principais a ter em mente:
Não há muitos dispositivos (ainda) rodando Android 6.0+ que tenham o hardware de impressão digital.
Para certos dispositivos (por exemplo, telefones Samsung Galaxy) que têm o hardware mas não estão rodando Android 6.0+, você terá que usar o SDK do fabricante.
Android Marshmallow introduziu um novo modelo de permissões que requer que o usuário dê permissões sensíveis em tempo de execução. Portanto, leve em conta que o usuário pode não conceder permissão para a digitalização de impressões digitais ao seu aplicativo.
Você pode criar um par de chaves simétricas ou assimétricas para criptografia de dados (veja este post para mais detalhes e exemplo de código no fluxo de chaves assimétricas para aplicativos Android).
Costuma manter a interface de usuário da interface de usuário. Consulte estas especificações de design do Google. Certifique-se de que a IU indica quando o scanner está pronto para o usuário. É recomendado utilizar o ícone de impressão digital padrão do Google que é facilmente reconhecido pelos usuários.
Não se esqueça de cancelar a audição de uma impressão digital quando seu aplicativo for para o fundo. Se você não parar de ouvir, outros aplicativos não podem usar o scanner, incluindo a tela de bloqueio. Em outras palavras, trate o leitor de impressões digitais como se fosse uma câmera. (Tidbit de Eric Richardson )
Deixe começar!
Configure o SDK e as permissões no manifesto Primeiro, defina o seu targetSdkVersion para "23" e adicione a permissão USE_FINGERPRINT no seu manifesto.
Disponha uma instância de KeyStore e KeyGenerator "AndroidKeyStore" está registado como um tipo de KeyStore para usar com o método KeyStore.getInstance(type) e KeyGenerator.getInstance(algoritmo, provedor) methods.
Requer uma permissão em tempo de execução Call requestPermissions() na sua Activity's onCreate():
requestPermissions(new String[]{Manifest.permission.USE_FINGERPRINT}, FINGERPRINT_PERMISSION_REQUEST_CODE);
O FINGERPRINT_PERMISSION_REQUEST_CODE é um valor de código de requisição para combinar com um resultado reportado a onRequestPermissionsResult(int, String[], int[]). Você pode escolher qualquer valor que quiser.
Cheque se a permissão foi concedida Agora, neste callback você irá verificar se a permissão foi concedida:
@Override public void onRequestPermissionsResult(int requestCode, String[] permissões, int[] estado) { if (requestCode == FINGERPRINT_PERMISSION_REQUEST_CODE && estado[0] == PackageManager.PERMISSION_GRANTED) { }}br>Initialize sua UI no corpo do onRequestPermissionsResult().
Certifique-se de que o hardware está presente e funcional FingerprintManager é uma classe que coordena o hardware do scanner.
@Proporciona o FingerprintManager public FingerprintManager(Context context) { return context.getSystemService(FingerprintManager.class); }br>Verificar se o scanner existe é fácil com FingerprintManager.isHardwareDetected().
Checar se a tela de bloqueio foi configurada Para verificar se o usuário configurou sua tela de bloqueio, obtenha uma instância do KeyguardManager chamando getSystemService(java.lang.String) com o argumento KEYGUARD_SERVICE, e use o método KeyguardManager.isKeyguardSecure(). Para verificar se existem impressões digitais registadas, use FingerprintManager.hasEnrolledFingerprints().
Criar um par chave / chave Inicializar uma KeyStore vazia passando nula em KeyStore.load(). Um KeyGenerator ou um KeyPairGenerator (para par de chaves assimétricas) é a classe utilizada para criar chaves. Deve ser inicializado com um KeyGenParameterS
Artigos semelhantes
- Como são armazenadas as impressões digitais nos telefones que utilizam a verificação de impressões digitais?
- Onde posso arranjar um condutor para o meu leitor de impressões digitais L-Scan Guardian?
- Qual é o melhor telefone de 5,5 polegadas com um botão físico de casa com um leitor de impressões digitais dentro do orçamento de 15k?
- É verdade que não deve confiar no sensor de impressões digitais do seu telefone? Porquê ou porque não?