Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
marcelo_tux Aprendiz
Registrado: Terça-Feira, 2 de Abril de 2013 Mensagens: 230 Localização: São José do Rio Preto - SP
|
Enviada: Qui Ago 22, 2019 2:10 pm Assunto: Leitor Biometrico. |
|
|
Boa tarde.
Alguém já fez ou sabe como acessar o leitor de digital do android com firemonkey ?
Por exemplo fazer um app que autentique com a digital.
Att
Marcelo _________________ Porgramador Delphi - Mobile |
|
Voltar ao Topo |
|
|
rodrigoprado Colaborador
Registrado: Terça-Feira, 24 de Mai de 2005 Mensagens: 1074 Localização: Curitiba/PR
|
Enviada: Qui Out 03, 2019 6:00 pm Assunto: |
|
|
Blz pessoal, por gentileza alguém avançou com essa situação?
seria "Fingerprint with android in delphi" or "Biometric"
Até achei um componente aqui, mas é pago...
TTMSFMXNativeLocalAuthentication
Authentication via Touch ID
Requires a device that supports Touch ID
Built-in verification if authentication via Touch ID is possible
https://www.tmssoftware.com/site/tmsicl.asp
Bom segue um exemplo em java... algo assim..
https://developer.android.com/training/sign-in/biometric-auth _________________ - Compartilhe seus conhecimentos - |
|
Voltar ao Topo |
|
|
lucasc Membro Junior
Registrado: Quinta-Feira, 10 de Mai de 2007 Mensagens: 305
|
Enviada: Seg Nov 04, 2019 9:57 am Assunto: |
|
|
Eu também estou a procura. |
|
Voltar ao Topo |
|
|
rodrigoprado Colaborador
Registrado: Terça-Feira, 24 de Mai de 2005 Mensagens: 1074 Localização: Curitiba/PR
|
|
Voltar ao Topo |
|
|
strak2012 Colaborador
Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Qui Jan 09, 2020 10:49 am Assunto: |
|
|
Baixe o sdk
biometric-1.0.1.aar
Use o java2op
Siga o exemplo do link:
biometric auth _________________ Tudo podemos quando tudo sabemos! |
|
Voltar ao Topo |
|
|
marcelo_tux Aprendiz
Registrado: Terça-Feira, 2 de Abril de 2013 Mensagens: 230 Localização: São José do Rio Preto - SP
|
Enviada: Qui Jan 09, 2020 2:43 pm Assunto: |
|
|
Boa Tarde strak2012 , obrigado pela ajuda.
Estou tentando gerar a unit com o java2op , porém esta gerando uma unit vazia.
Saberia o porque ? _________________ Porgramador Delphi - Mobile |
|
Voltar ao Topo |
|
|
strak2012 Colaborador
Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Qui Jan 09, 2020 4:44 pm Assunto: |
|
|
marcelo_tux escreveu: | Boa Tarde strak2012 , obrigado pela ajuda.
Estou tentando gerar a unit com o java2op , porém esta gerando uma unit vazia.
Saberia o porque ? |
abra o *.aar com o winrar ou 7zip extraia o classe.jar
renomei o classe.jar para biometric.jar para ficar mais comodo
com o biometric.jar gere a unit bridge com java2op
importe o biometric.jar para o projeto
Realize a transcrição do exemplo java do link para delphi
o código não ficara muito diferente entre java e delphi
pronto!
é testar
notas e observações:
1 - Dê preferencia ao java2op da versão do delphi 10.3
2 - Talvez algumas permissões seja necessitaria ou não dá uma pesquisada
@Editado---
Confirmado as permissões necessárias são:
Código: | <uses-permission android:name="android.permission.USE_BIOMETRIC" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" /> |
_________________ Tudo podemos quando tudo sabemos! |
|
Voltar ao Topo |
|
|
marcelo_tux Aprendiz
Registrado: Terça-Feira, 2 de Abril de 2013 Mensagens: 230 Localização: São José do Rio Preto - SP
|
Enviada: Sex Jan 10, 2020 1:47 pm Assunto: |
|
|
Consegui gerar a unit , porém não to conseguindo usar de jeito nenhum.
Quando tiver um tempinho e puder me ajudar a usá-la.
Obrigado. _________________ Porgramador Delphi - Mobile |
|
Voltar ao Topo |
|
|
strak2012 Colaborador
Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Sex Jan 17, 2020 1:32 am Assunto: |
|
|
E depois de mais de uma semana estudando o caso enfim consegui compilar um exemplo uffa.
Fazer uso de SDK no Delphi vem sendo cada vez mais trabalhosa.
Vou citar os problema que enfrentei ao tentar fazer uso desta sdk no Delphi e as suas respectivas soluções:
1 - Dependência de pacotes
É comum que um jar depende de outro jar e aí vem a batalha de buscar-las em repositórios como o maven
Este pacote tem dependência de pelo menos outros três pacotes mais vamos abstrair esta questão com um simples demo apk em java já funcional
Com o apk em java funcional você neste mesmo apk já possui tudo necessário para fazer uso da sdk então basta saber como extrair deste apk o que necessitamos.
Vale lembrar que arquivos do tipo *.apk *.jar *.aar pode serem manipulados pelo WinRAR ou 7zip
Deste demo apk vamos extrair todo seu conteúdo em uma pasta.
O que basicamente vamos necessita desta extração são: a pasta chamada RES e os arquivos *.dex se houver mais de um claro.
Vais precisar converter o *.dex em *.jar costumo da seu nome de FullSdk.jar, já expliquei em post antigos o processo desta conversão.
Vamos agora voltar ao projeto e incluir o FullSdk.jar ao projeto e compilar pode haver conflito de jar e um erro saltar normalmente estar relacionado ao android-suport-v4.dex.jar e a FullSdk.jar ou seja ambas devem possuir algumas classe em comum.
Solução:
Abrir o FullSdk com o WinRAR e deletar o que pode estar a causar este conflito.
Resultado esperado:
Depois de deletar os arquivo de conflito da FullSdk.jar a compilação deve ser concluída sem erros
Uma vez que tenhamos este resultado agora passamos para o java2op
Deverá conseguir gerar o FullSdk.pas sem problema, importe para o seu projeto e notará um série de erro na FullSdk.pas
Os erro mais comum são:
1 - overloads;
2 - nomes de variáveis, constante functions e procedures com palavras reservadas
3 - símbolo $ em nomes de variáveis, constante, functions e procedures
Neste aspecto você precisa analisar cada caso para saber como corrigir cada um dos problemas.
Você pode também comentar a linha com o problema se for de uma classe que não irar chamar em seu programa.
Resultado esperado:
Depois do ajustes na FullSdk.pas será esperado uma compilação sem erros
Até este ponto estava familiarizado com todo este processo e para mim não havia muito segredo.
As coisas começa a complicar a partir deste ponto aqui.
Existe uma razão para que as Sdk venha em *.aar em vez de *.jar
É que *.aar acompanha arquivos recursos tipo *.png *.XML dentre outros mais e um chamado classe.jar que seria a própria SDK, noto que isso é um padrão das SDK no repositório maven.
Pois bem vais precisar agora introduzir os xmls e os pngs ao seu projeto em deployment isso pq está sdk provavelmente necessita de algum destes arquivos
Aqui quando você tentar compilar terá muitos surpresas desagradável e muitos erros
Dos que encontrei foi:
Nome de XML ou PNG não pode possuir o símbolo $
-Fácil resolver basta renomear os arquivos trocando onde tem $ por _ e problema resolvido
Arquivo public.xml não é suportada pelo aapt.exe nossa e agora?
um erro vai saltar com o seguit texto -> [PAClient Error] Error: E2312 First type is not attr!
a compilação consegue exito quando desmarcado o public.xml do deployment
A solução passara por termos que usar o aapt2.exe e claro também pelo aapt.exe
A pergunta é como?
Ambos gera um apk não assinado o aapt.exe gera tal como o na ide delphi, uma vez claro que a própria ide usa ele.
vou deixar as linhas de comando que funcionou para mim:
Código: | cd C:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-sdk-windows\build-tools\29.0.2\
aapt.exe package -f -M "C:\Users\strak\Desktop\biometria_delphi_android2\biometric\Android\Debug\BiometricDelphi\AndroidManifest.xml" -F "C:\Users\strak\Desktop\biometria_delphi_android2\biometric\Android\Debug\BiometricDelphi\bin\aapt_BiometricDelphi-unsigned.apk" -I "C:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-sdk-windows\platforms\android-28\android.jar" -S "C:\Users\strak\Desktop\biometria_delphi_android2\biometric\Android\Debug\BiometricDelphi\res" -A "C:\Users\strak\Desktop\biometria_delphi_android2\biometric\Android\Debug\BiometricDelphi\assets" "C:\Users\strak\Desktop\biometria_delphi_android2\biometric\Android\Debug\BiometricDelphi\library" "C:\Users\strak\Desktop\biometria_delphi_android2\biometric\Android\Debug\BiometricDelphi\classes"
aapt2.exe compile --dir "C:\Users\strak\Desktop\biometria_delphi_android2\biometric\apk java decoded\res" -o "C:\Users\strak\Desktop\biometria_delphi_android2\biometric\apk java decoded\resources.zip"
aapt2.exe link -o "C:\Users\strak\Desktop\biometria_delphi_android2\biometric\Android\Debug\BiometricDelphi\bin\aapt2_BiometricDelphi-unsigned.apk" --manifest "C:\Users\strak\Desktop\biometria_delphi_android2\biometric\Android\Debug\BiometricDelphi\AndroidManifest.xml" -I "C:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-sdk-windows\platforms\android-28\android.jar" "C:\Users\strak\Desktop\biometria_delphi_android2\biometric\apk java decoded\resources.zip" -v
|
com os dois apks gerado voce agora vai pegar novamente o winrar e copiar o conteúdo de um para o outro o de menor tamenho para o de maior tamanho
depois assinar o apk e instalar no dispositivo
existe muitos pormenores que ainda não consegui mencionar nesta postagem, assim na duvida vai perguntando pq certamente devo ter esquecido de mencionar varias coisas
Download de exemplo compilado + fontes:
Download do apenas do apk já compilado
Download do apk + fontes
Observação:
É um processo muito trabalhoso, e tem uma desvantagem de não poder debugar a aplicação uma vez que voce estar gerando o apk fora da ide delphi
assim estou estudando forma de implementar isso na ide delphi de forma automatica.
Algumas telas deste duro trabalho:
_________________ Tudo podemos quando tudo sabemos! |
|
Voltar ao Topo |
|
|
strak2012 Colaborador
Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Seg Jan 20, 2020 1:04 am Assunto: |
|
|
Agora com o projeto mais organizado e com a possibilidade de debugar-lo
Para isso criei um código fonte de um aplicação de auxilio chamada aaptEx.exe ela basicamente deve ser chamada pelo delphi em vez da aapt.exe, assim sendo ela deve ser copiada para pasta onde se localiza as aplicações aapt.exe e a aapt2.exe, pois a aaptEx.exe vai fazer uso das duas para gerar os dois apk e depois uni em um só, foi usado o ZipForge para manipular os dois apks
Download fontes do apk biometria em delphi + fonte do aaptEx.exe
Local onde o aaptEx.exe foi colocado em meu caso:
Os arquivos do projeto ficou desta forma:
_________________ Tudo podemos quando tudo sabemos! |
|
Voltar ao Topo |
|
|
marcelo_tux Aprendiz
Registrado: Terça-Feira, 2 de Abril de 2013 Mensagens: 230 Localização: São José do Rio Preto - SP
|
Enviada: Seg Jan 20, 2020 8:07 am Assunto: |
|
|
Muito obrigado strak2012.
Obrigado por ter disponibilizado seu tempo e conhecimento para nos ajudar.
Assim que der vou implantar em um software meu para teste.
Mais um vez Obrigado. _________________ Porgramador Delphi - Mobile |
|
Voltar ao Topo |
|
|
marcelo_tux Aprendiz
Registrado: Terça-Feira, 2 de Abril de 2013 Mensagens: 230 Localização: São José do Rio Preto - SP
|
Enviada: Ter Jan 21, 2020 8:41 am Assunto: |
|
|
strak2012 escreveu: | Agora com o projeto mais organizado e com a possibilidade de debugar-lo
Para isso criei um código fonte de um aplicação de auxilio chamada aaptEx.exe ela basicamente deve ser chamada pelo delphi em vez da aapt.exe, assim sendo ela deve ser copiada para pasta onde se localiza as aplicações aapt.exe e a aapt2.exe, pois a aaptEx.exe vai fazer uso das duas para gerar os dois apk e depois uni em um só, foi usado o ZipForge para manipular os dois apks
Download fontes do apk biometria em delphi + fonte do aaptEx.exe
Local onde o aaptEx.exe foi colocado em meu caso:
Os arquivos do projeto ficou desta forma:
|
Hoje fui testar , ao acionar o botão login no meu aparelho ele dá a seguinte mensagem :
"Fingerprint is not registered in device" _________________ Porgramador Delphi - Mobile |
|
Voltar ao Topo |
|
|
strak2012 Colaborador
Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Ter Jan 21, 2020 8:58 am Assunto: |
|
|
O dispositivo não possui suporte, ou não possui o sensor de impressão digital.
Neste caso você pode trocar a mensagem por um painel de pin, exemplo quando há suporte exibe a caixa para impressão digital, quando não exibe um painel numérico para entrar com uma senha.
Basicamente é isso.
Você sabendo interceptar se há ou não suporte você pode então exibir um teclado para senha.
O fonte só é funcional se o dispositivo possuir o sensor de impressão digital e se o dispositivo é suportado pela sdk. _________________ Tudo podemos quando tudo sabemos! |
|
Voltar ao Topo |
|
|
strak2012 Colaborador
Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Ter Jan 21, 2020 9:03 am Assunto: |
|
|
Fingerprint is not registered in device
Se bem que esta mensagem indica que você não possui nenhum impressão cadastrada no Android.
Você tentar cadastrar um digital e voltar a testar. _________________ Tudo podemos quando tudo sabemos! |
|
Voltar ao Topo |
|
|
strak2012 Colaborador
Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Ter Jan 21, 2020 9:04 am Assunto: |
|
|
Também pode vê se consegue chamar as configuração para cadastro de digital, que deverá ser por intent não saberia dizer como fazer isso agora mais é possível. _________________ Tudo podemos quando tudo sabemos! |
|
Voltar ao Topo |
|
|
|