Introdução
Bem vindo à SDK Android de Reconhecimento Facial da Zaig. Esta SDK realiza a captura de face e seu envio para a API de Face Recognition da Zaig. Você pode utilizar esta SDK para capturar através do seu aplicativo uma imagem do rosto de um cliente e referenciá-lo através de uma chave nos demais produtos do sistema Zaig.
Problemas?
Nós não somos uma companhia que se esconde atrás de uma API! Entre em contato com o nosso suporte e nós responderemos o mais rápido possível. Fique à vontade para nos ligar caso deseje uma resposta rápida!
Adoramos Feedback
Mesmo que você já tenha resolvido o seu problema ou que ele seja muito simples (Até mesmo um typo ou uma organização inadequada que você já entendeu), envie-nos um e-mail, assim nós tornamos a documentação cada vez mais prática e a próxima pessoa não vai precisar sofrer as dores que você sofreu!
Soluções híbridas
Além da integração nativa em Java, nossos SDKs são compatíveis com: Flutter, Ionic Cordova, Capacitor, React Native entre outras. Atualmente nossos SDKs híbridos estão documentados em um repositório privado. Caso tenha interesse nestas integrações, entre em contato com nosso suporte para liberarmos acesso.
Integração nativa
Para importar nossas SDKs, é necessário realizar alteração no build.gradle de Projeto e de Aplicativo.
Adicionando ao Projeto
Adicione o endereço de nosso repositório maven no build.gradle do projeto (no Android Studio este arquivo aparece como: "Project: {nome_do_projeto}"), conforme exemplo abaixo.
buildscript {
...
}
allprojects {
repositories {
...
maven { url 'https://sdks.zaig.com.br/' }
}
}
Adicionando ao Aplicativo
Após isso, adicione a biblioteca que você pretende importar em seu build.gradle do app (no Android Studio este arquivo aparece como: "Module: {nome_do_projeto}.app"), incluindo a dependência apresentada abaixo.
android {
...
}
...
dependencies {
...
implementation 'com.zaig.android:facerecon:v2.0.0'
}
Iniciando a SDK
Para incorporar a SDK ao seu aplicativo você deve iniciar realizar a configuração do seu aplicativo de captura personalizado através de builder e submetê-lo como parâmetro via Intent Extra para a FaceReconActivity.
Intent intent = new Intent(getApplicationContext(), FaceReconActivity.class);
VisualConfiguration visualConfiguration = new VisualConfiguration()
.setOnboardingDrawable(R.drawable.introscreen,500);
TextConfiguration textConfiguration = new TextConfiguration()
.setCustomText(TextConfiguration.CustomLabel.onboardingTitle, "Para tirar uma boa foto:")
.setCustomText(TextConfiguration.CustomLabel.onboardingFirstLabel, "- Vá para um local iluminado")
.setCustomText(TextConfiguration.CustomLabel.onboardingSecondLabel, "- Retire adereços e mostre bem o rosto")
.setCustomText(TextConfiguration.CustomLabel.onboardingThirdLabel, "- Insira seu rosto na moldura, aguardando que fique verde para realizar a captura");
FaceRecognition mFaceRecognition = new FaceRecognition.Builder("YOUR_MOBILE_TOKEN_SENT_BY_ZAIG")
.showIntroductionScreens(true)
.setVisualConfiguration(visualConfiguration)
.setTextConfiguration(textConfiguration)
.setBackgroundColor("#000000")
.setFontColor("#FFFFFF")
.setFontFamily(FaceRecognition.FontFamily.futura)
.setSessionId("SESSION_ID")
.setLogLevel(FaceRecognition.LogLevel.debug)
.setShowSuccessScreen(false)
.build();
intent.putExtra("settings", mFaceRecognition);
startActivityForResult(intent, REQUEST_CODE);
Utilizamos um Mobile Token para permitir o acesso autenticado do seu aplicativo a nossa API. Ela provavelmente já foi enviada por e-mail para você. Caso ainda não tenha recebido o seu token, envie um e-mail para suporte.caas@qitech.com.br.
Nossa API espera receber o Mobile Token em todas as requisições ao nosso servidor vindas da SDK, portanto, este deve ser obrigatoriamente incluído como parâmetro de configuração através do método mencionado anteriormente.
FaceRecognition.Builder
Parâmetro | Função | Obrigatório |
---|---|---|
mobileToken | Chave do cliente que identifica que os dados coletados são provenientes do seu aplicativo. Caso ainda não tenha recebido o seu mobile-token, entre em contato com o suporte. | Sim. |
.setSandboxEnvironment() | Caso este parâmetro seja utilizado no construtor, a biblioteca será configurada para enviar os dados ao ambiente de sandbox. Caso ausente, as requisições são enviadas para o ambiente production. | Não. |
.showIntroductionScreens(Boolean showIntroductionScreens) | Quando "false" desativa as telas de introdução à coleta da foto que aparecem para o usuário. | Não. O padrão é "true". |
.setShowSuccessScreen(Boolean showSuccessScreen) | Quando "false" desativa a tela de sucesso após a coleta da foto. | Não. O padrão é "true". |
.setBackgroundColor(String backgroundColor) | Permite a configuração da cor de background das activities da SDK. | Não. O padrão é "#ffffff". |
.setFontColor(String fontColor) | Permite a configuração da cor da fonte e dos ícones das activities da SDK. | Não. O padrão é "#000000". |
.setFontFamily(FontFamily fontFamily) | Permite a configuração da fonte das activities da SDK. | Não. Caso não seja informada o padrão é FontFamily.open_sans. Fontes disponíveis: FontFamily.open_sans, FontFamily.futura, FontFamily.verdana, FontFamily.roboto, FontFamily.poppins e FontFamily.helvetica. |
.activeFaceLiveness(Boolean activeFaceLiveness) | Indica se a SDK deve realizar um procedimento de captura de selfie do usuário ou de prova de vida ativa. | Não. O padrão é false. |
.audioConfiguration(AudioConfiguration audioConfiguration) | Indica se a SDK deve ou não executar áudios de indicação para o usuário. As configurações aceitas são AudioConfiguration.enable que executa os áudios de indicação, AudioConfiguration.disable que não executa estes áudios e AudioConfiguration.accessibility que executa os áudios caso o dispositivo do usuário possua configurações de acessibilidade ativadas. | Não. O padrão é AudioConfiguration.disable. |
.setVisualConfiguration(VisualConfiguration. visualConfiguration) | Utilizado para customizar as imagens mostradas para o usuário ao longo da execução da SDK. | Não. |
.setTextConfiguration(TextConfiguration. textConfiguration) | Utilizado para customizar os textos da tela introdutória de onboarding mostradas para o usuário ao longo da execução da SDK. | Não. |
.setSessionId(String sessionId) | Utilizado para definir a chave que identifica a sessão iniciada na SDK. É usada para rastrear todo fluxo percorrido pelo usuário na execução da FaceRecon através de logs. Este campo aceita até 255 caracteres. | Não. |
.setLogLevel(FaceRecognition.LogLevel logLevel) | Utilizado para customizar o nível de verbosidade dos logs da SDK. Níveis disponíveis: LogLevel.debug, LogLevel.info, LogLevel.warn, LogLevel.error e LogLevel.trace. O padrão é LogLevel.debug. | Não. |
.setDocumentNumber(String documentNumber) | Utilizado para definir o número do documento do usuário. Este campo aceita 14 caracteres. | Não. |
.setValidation(Boolean validation) | Utilizado para definir se a SDK deve ou não realizar a validação 1:1 com a selfie do usuário. Na primeira sessão do usuário esta flag deve estar, obrigatoriamente, false. Esta função depende necessita do método setDocumentNumber preenchido. | Não. O padrão é false. |
O Objeto VisualConfiguration
Parâmetro | Função | Obrigatório |
---|---|---|
.setOnboardingDrawable(int onboarding_drawable, int onboarding_width) | Utilizado para configurar a imagem mostrada para o usuário na tela de onboarding da SDK. O parâmetro onboarding_drawable deve referenciar o id da imagem a ser mostrada e onboarding_width é o tamanho desejado de exibição desta imagem. | Não. |
.setButtonBorderSize(int border_size) | Utilizado para configurar a largura de borda dos botões da SDK. | Não. O padrão é 1. |
.setButtonShadow(boolean button_shadow) | Quando setado para false remove o efeito de sombra, padrão no android, utilizado pelos botões da SDK. | Não. O padrão é true. |
O Objeto TextConfiguration
Parâmetro | Função | Obrigatório |
---|---|---|
.setCustomText(CustomLabel label, String text) | Utilizado para configurar os textos mostrados para o usuário na tela de onboarding da SDK | Não. |
Coletando os Resultados
Para obter o objeto FaceReconResponse, que contém os resultados das capturas obtidas pela SDK, incluindo os identificadores das imagens enviadas no sistema Zaig, sobrescreva o método onActivityResult na mesma activity que você iniciou a FaceReconActivity:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
FaceRecognition.RequestResponseObject result;
if (requestCode == REQUEST_CODE){
if (resultCode == RESULT_OK && data != null){
FaceRecognition.RequestResponseObject mRequestResponseObject = data.ParcelableExtra("result");
}
}
}
Descrição dos Atributos do Objeto RequestResponseObject
Atributo | Descrição |
---|---|
status_code | Status code da requisição. |
image_key | Chave de identificação da imagem fornecida que pode ser utilizada em qualquer outro serviço do sistema ZAIG. |