NAV
shell
  • Introdução
  • Soluções híbridas
  • Integração nativa
  • DocumentDetectorStep
  • Coletando os Retornos
  • Introdução

    Bem vindo à SDK Android de OCR (Optical Character Recognition) para leitura de documentos da Zaig. Esta SDK realiza a captura de documentos e envio a API de OCR da ZAIG. Você pode utilizar esta SDK para capturar através do seu aplicativo uma imagem de um documento de seu cliente a ser reconhecido, como uma Carteira de Habilitação ou Cédula de identidade, 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 {
        ...
        packagingOptions {
            pickFirst '**/*.so'
        }
        ...
        splits {
            abi {
                enable true
                universalApk true
                reset()
                include 'armeabi-v7a', 'x86', 'x86_64', 'arm64-v8a'
            }
        }
    }
    ...
    dependencies {
        ...
        implementation 'com.zaig.android:documentrecognition:v1.7.5'
    }
    

    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 DocumentRecognitionActivity.

      Intent intent = new Intent(context, DocumentRecognitionActivity.class);
    
      VisualConfiguration visualConfiguration = new VisualConfiguration()
              .setOnboardingDrawable(R.drawable.introscreen,500)
              .setDocumentFrontDrawable(R.drawable.documentfront, 500)
              .setDocumentBackDrawable(R.drawable.documentback, 500);
    
      TextConfiguration textConfiguration = new TextConfiguration()
               .setCustomText(TextConfiguration.CustomLabel.onboardingTitle, "Vamos começar!")
               .setCustomText(TextConfiguration.CustomLabel.onboardingFirstLabel, "- Vá para um local iluminado")
               .setCustomText(TextConfiguration.CustomLabel.onboardingSecondLabel, "- Retire o documento do plástico")
               .setCustomText(TextConfiguration.CustomLabel.onboardingThirdLabel, "- Insira seu documento na moldura, aguardando que fique verde para realizar a captura.");
    
      DocumentRecognition mDocumentRecognition = new DocumentRecognition.Builder("YOUR_MOBILE_TOKEN_SENT_BY_ZAIG")
              .setDocumentSteps(DocumentSteps)
              .setVisualConfiguration(visualConfiguration)
              .setTextConfiguration(textConfiguration)
              .showIntroductionScreens(true)
              .setShowSuccessScreen(false)
              .setBackgroundColor("#000000")
              .setFontColor("#FFFFFF")
              .setFontFamily(DocumentRecognition.FontFamily.open_sans)
              .setSessionId("SESSION_ID")
              .setLogLevel(FaceRecognition.LogLevel.debug)
              .build();
      intent.putExtra("settings", mDocumentRecognition);
      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 incluido como parâmetro de configuração através do método mencionado anteriormente.

    DocumentRecognition.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.
    .setDocumentSteps(DocumentRecognitionStep[] documentSteps) Define o fluxo de captura de documentos realizado pelo usuário. Mais informações aqui 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 de foto do documento 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.
    .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(DocumentRecognition.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.

    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.
    .setDocumentFullDrawable(int documentfull_drawable, int documentfull_width) Utilizado para configurar a imagem mostrada para o usuário na tela de captura de CNH inteira da SDK. O parâmetro documentfull_drawable deve referenciar o id da imagem a ser mostrada e documentfull_width é o tamanho desejado de exibição desta imagem. Não.
    .setDocumentFrontDrawable(int documentfront_drawable, int documentfront_width) Utilizado para configurar a imagem mostrada para o usuário na tela de captura de CNH e RG frente da SDK. O parâmetro documentfront_drawable deve referenciar o id da imagem a ser mostrada e documentfront_width é o tamanho desejado de exibição desta imagem. Não.
    .setDocumentBackDrawable(int documentback_drawable, int documentback_width) Utilizado para configurar a imagem mostrada para o usuário na tela de captura de CNH e RG verso da SDK. O parâmetro documentback_drawable deve referenciar o id da imagem a ser mostrada e documentback_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.

    DocumentDetectorStep

    O fluxo de captura de documentos que o usuário será submetido é definido através de um array de objetos do tipo DocumentRecognitionStep (disponível na SDK), em que cada elemento é um dos passos de captura realizado pelo usuário.

    DocumentSteps = new DocumentRecognitionStep[]{
            new DocumentRecognitionStep(Document.cnh_front),
            new DocumentRecognitionStep(Document.cnh_back)
    };
    

    Acima, é implementado um fluxo que coletará do usuário primeiro a frente de seu CNH (cnh_front) e, depois de validada a coleta de uma foto de qualidade, o verso do CNH.

    O objeto DocumentRecognitionStep pode assumir os seguintes valores:

    public enum Document {
        cnh, // Carteira Nacional de Habilitação brasileira completa
        cnh_front, // Carteira Nacional de Habilitação brasileira frente (Lado da foto)
        cnh_back, // Carteira Nacional de Habilitação brasileira frente (Lado da assinatura)
        cnh_digital, // PDF da Carteira Nacional de Habilitação brasileira digital
        rg_front, // Carteira de Identidade brasileira frente (Lado da foto)
        rg_back, // Carteira de Identidade brasileira verso (Lado dos dados)
        proof_of_address, // Comprovante de Residência
        other // Outros documentos de identificação
    }
    

    Coletando os Retornos

    Para obter o objeto RequestResponseObject, que contém as capturas obtidas pelo SDK, sobrescreva o método onActivityResult na mesma activity que você iniciou a DocumentRecognitionActivity:

        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            DocumentRecognition.RequestResponseObject result;
            if (requestCode == REQUEST_CODE){
                if (resultCode == RESULT_OK && data != null){
                    DocumentRecognition.RequestResponseObject mRequestResponseObject = data.ParcelableExtra("result");
                }
            }
        }
    

    Descrição dos Atributos do Objeto RequestResponseObject

    Atributo Descrição
    ocr_key Chave de identificação da imagem fornecida que pode ser utilizada em qualquer outro serviço do sistema Zaig.