Android
AllowMeSDK v2 Primeiros Passos
Pré-requisitos
Requisito | Versão (SDK v1) | Versão (SDK v2) |
---|---|---|
Target do app* | 15 (Android 4.0.3) ou superior | 18 (Android 4.3) ou superior |
Versão do Android* | 15 (Android 4.0.3) ou superior | 23 (Android 6) ou superior |
WARNING
O Target do app diz respeito ao target mínimo suportado pelo nosso SDK, enquanto a versão do Android é a versão mínima de funcionamento, ou seja, em versões menores que 23 o AllowMeSDK pode ser importado mas retornará o erro UnsupportedVersion que deve ser tratada pela aplicação.
Evolução do AllowMeSDK v2
A medida em que evoluimos o AllowMeSDK V2, estamos sempre em constante atualização do Kotlin, Gradle Tools bem como o Gradle Wrapper. Assim, aconselhamos que o seu projeto esteja atualizado com as ferramentas citas (e mais novas) ao utilizar determinadas versões do AllowMeSDK. Abaixo segue uma lista de quais as ferramentas estamos utilizando por versão do AllowMeSDK e onde foi modificado alguma destas ferramentas.
Versão do AllowMeSDK | Kotlin | Gradle Tools | Gradle Wrapper |
---|---|---|---|
3.1.0+ | 1.8.22 | 8.3.0 | 8-4 |
3.0.0 até 3.0.2 | 1.8.20 | 7.4.2 | 7-5 |
2.3.1 até 2.5.1 | 1.6.10 | 7.2.2 | 7-3.3 |
2.1.3 até 2.3.0 | 1.6.10 | 7.1.2 | 7-2 |
1. Solicite suas credenciais
Antes de começar, certifique-se de que esteja de posse das credenciais de acesso aos nossos repositórios!
TIP
Caso não faça ideia de onde estejam essas credenciais, entre em contato com o nosso suporte em [email protected] 😃
Você terá duas opções de SDK: o AllowMeSDK de homologação e o de produção. A versão de homologação deve ser usada para testes e debug, enquanto a de produção deve ser enviada para a Google Play Store junto ao seu aplicativo.
2. Atualize seu build.gradle
Você deve adicionar o SDK e suas dependências nos arquivos build.gradle do projeto.
O AllowMe Device Intelligence (Contextual) SDK está hospedado em um repositório privado Maven, acessível via Gradle. Por isso, você deve adicionar ao build.gradle do seu projeto as seguintes linhas, contendo o username, password e URL mencionados na passo 1:
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
maven {
authentication {
basic(BasicAuthentication)
}
credentials {
username 'SEU_USERNAME_AQUI'
password 'SEU_PASSWORD_AQUI'
}
url "https://android.allowmecloud.com/sdk"
}
}
}
Em seguida, você deve adicionar essas dependências ao build.gradle do seu módulo:
dependencies {
// Para produção, adicionar
releaseImplementation "br.com.allowme.android:allowme-sdk:3.4.9"
// Para homologação, adicionar
debugImplementation "br.com.allowme.android:allowme-sdk:3.4.9-stage"
}
Notas Importantes
Existem diferentes SDKs para homologação e para produção. Escolha a versão de acordo com suas necessidades, se possível utilizando build variants (opens new window);O AllowMe SDK foi desenvolvido para ser compilado com minSdkVersion (Android API Level) igual ou superior a 18 (4.3.x). Entretanto, por questões de segurança o SDK funcionará como esperado a partir da versão 23 (6.0). Isto significa que o seu projeto irá compilar e executar em diferentes devices a partir do Android 18, só funcionará efetivamente em devices com versão 23 e superiores - 95% dos dispositivos no Brasil segundo statcounter-brazil-mobiles (opens new window).
2.1 Resolvendo Conflitos de Bibliotecas
O AllowMe SDK utiliza algumas bibliotecas comuns do Android em seu uso interno. Desta forma, estas bibliotecas podem acabar conflitando com as utilizadas em seu projeto. Assim, sugerimos que as bibliotecas sejam atualizadas para as versões mais novas, bem como a utilização destas dentro do código de seu projeto.
É importante que esta atualização seja feita pois quando ocorre um conflito entre bibliotecas, por padrão o sistema de prioridades de build do Gradle escolherá as bibliotecas mais atualizadas. Desta forma, se o seu projeto utilizar a biblioteca do ConstraintLayout em uma versão inferior a 2.1.0 (utilizada no AllowMe SDK), no momento da compilação o seu projeto automaticamente acabará utilizando a versão mais atualizada e isto pode ocasionar a quebra de seu projeto.
Segue abaixo a lista de algumas bibliotecas que são utilizadas bem como suas versões:
- androidx.appcompat:appcompat:1.6.1
- androidx.core:core-ktx:1.10.1
- com.squareup.okhttp3:okhttp:4.11.0
- androidx.room:room-runtime:2.5.2
- androidx.work:work-runtime-ktx:2.8.1
- androidx.constraintlayout:constraintlayout:2.1.4
Impossibilidade de Atualização das Bibliotecas
Se por algum motivo não for possível atualizar para as versões mais novas alguma das bibliotecas citadas acima, considere utilizar a diretiva 'exclude' no AllowMe SDK. No exemplo abaixo estamos utilizando a versão do okhttp3 do projeto, no lugar de atualizarmos para a versão utilizada pelo AllowMeSDK.
dependencies { // Com esta diretiva abaixo, estamos informando que // não utilizaremos a versão do okhttp do AllowMeSDK implementation ("br.com.allowme.android:allowme-sdk:3.4.9") { exclude group: "com.squareup.okhttp3", module: "okhttp" } }
Entretanto, o AllowMeSdk pode não funcionar muito bem nestas situações. Por isto, aconselhamos fortemente que as bibliotecas citadas sejam atualizadas.
3. Atualize seu AndroidManifest.xml
Você deve atualizar seu AndroidManifest.xml para incluir as permissões de sistema operacional usadas pelo AllowMeSDK.
O AllowMe SDK funciona com um conjunto de permissões que devem ser gerenciadas no app host. A maioria das permissões são opcionais, porém para melhor acurácia dos serviços segue uma lista ideal de configuração. Entretanto, ela pode ser ajustada de acordo com as políticas de privacidade do seu app:
<manifest>
<!-- Permissão obrigatória para acesso à internet -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Permissões não obrigatórias, mas importantes -->
<!-- Precisamos da permissão de localização ACCESS_FINE_LOCATION ou ACCESS_COARSE_LOCATION -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- Opcionais -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- Só é necessário se a feature de biometria facial estiver sendo utilizada -->
<uses-permission android:name="android.permission.CAMERA" />
(...)
</manifest>
Segue abaixo uma lista das permissões que são importantes para o AllowMeSdk e são classificadas como MUST (Deve Ter), SHOULD (Importantes) e HAVE (opcionais). As permissões SHOULD e HAVE, mesmo sendo importantes não são obrigatórias, mas podem aumentar a capacidade do Allowme de gerar um fingerprint mais robusto.
Permissão | Tipo de Classificação |
---|---|
android.permission.INTERNET | MUST |
android.permission.ACCESS_FINE_LOCATION ou android.permission.ACCESS_COARSE_LOCATION | SHOULD |
com.google.android.gms.permission.AD_ID | SHOULD |
android.permission.READ_PHONE_STATE | SHOULD |
android.permission.ACCESS_NETWORK_STATE | SHOULD |
android.permission.ACCESS_WIFI_STATE | SHOULD |
android.permission.CHANGE_WIFI_STATE | HAVE |
android.permission.CAMERA | HAVE |
android.permission.READ_EXTERNAL_STORAGE | HAVE |
Entre em contato com o [email protected] para verificar quais permissões são necessárias para os recursos que você precisa no seu modelo de negócio
4.Inicializar o SDK
WARNING
O AllowMeSDK usa criptografia de ponta, que garante a segurança e privacidade dos dados durante a comunicação com os seus servidores. Para que isso ocorra de maneira correta, é extremamente necessário que o dispositivo possua uma conexão de internet válida, sem bloqueios na rede, durante a inicialização do SDK. Caso isso não aconteça, o método setup retornará um erro e o SDK não funcionará como esperado.
- Para utilizar o SDK, é preciso inicializar uma instância da classe AllowMe. Sugerimos que esta inicialização seja realizada em uma classe Application - Android Application (opens new window)e que esta instância esteja disponível ao longo do aplicativo (ex.: Utilização de injeção de dependência como Hilt, Dagger ou Koin). A criação do objeto AllowMe leva em conta o contexto da aplicação e a ApiKey (que pode ser adquirida com nosso time de suporte).
- Em seguida é necessário chamar o método setup para que o SDK seja configurado de forma correta.Este método pode ser chamado através de duas variantes das quais você pode escolher:
2.1 Utilizando Callback
2.2 Utilizando Lambda (Kotlin)
allowMe.setup(
{
// Inicializado com Sucesso
},
{ throwable ->
// Algum erro aconteceu
}
)
AllowMeSDK Biometria Facial
Agora que você já está com o setup inicial pronto, vamos aprender como usar o AllowMeSDK Biometria Facial! 😉
O que é e para que serve o AllowMeSDK Biometria Facial?
O AllowMeSDK Biometria Facial é o nosso produto responsável por validar a identidade do usuário, aumentando a segurança do seu negócio ao mesmo tempo em que diminui a fricção. Verificamos se a foto é válida e se trata de uma pessoa real ou se é uma tentativa de falsificação, checando se o usuário corresponde ao CPF informado durante o cadastro.
Para realizar a integração da Biometria Facial do AllowMeSDK no seu aplicativo android, é só seguir os passos abaixo! 😄
1. Pré-requisitos
Requisito | Versão (SDK v3) |
---|---|
Target do app* | 18 (Android 4.3) ou superior |
Versão do Android* | 23 (Android 6) ou superior |
Biometria* | Dispositivo com Câmera Frontal |
Atenção
O Target do app diz respeito ao target mínimo suportado pelo nosso SDK, enquanto a versão do Android é a versão mínima de funcionamento, ou seja, em versões menores que 23 o AllowMeSDK pode ser importado mas retornará o erro UnsupportedVersion que deve ser tratada pela aplicação.
Além dos pré-requisitos de versão de sistema operacional, o hardware do dispositivo deve possuir câmera frontal para a captura da biometria. Caso o dispositivo não tenha esta feature, o AllowMe SDK irá retornar um erro que deve ser tratado pela aplicação (favor verificar o tópico - Tipos de Erros)
1.1 Escolha do Provider
No AllowMeSDK disponibilizamos alguns fornecedores (providers) diferentes para a biometria facial que funcionam em conjunto com a nossa análise de dispositivos. Atualmente, além do AllowMe, contamos também com a FaceTec. Seguem abaixo os providers e como ativar cada um deles:
AllowMe: provedor padrão do AllowMeSDK, portanto, nenhum passo adicional precisa ser realizado, apenas siga com a implementação da nossa biometria.
FaceTec: provedor que é utilizado pelo SDK que é distribuído de forma conjunta entre o SDK Device Intelligence e o SDK Facetec. Assim é necessário modificar o arquivo build.gradle adicionando a biblioteca br.com.serasaexperian.android.facetec:serasa-sdk:<versao> no lugar da versão standalone do AllowMe SDK br.com.allowme.android:allowme-sdk:<versao>
Providers
Para mais informações sobre os providers disponíveis para a biometria do AllowMeSDK e se o produto está corretamente configurado para a sua integração junto ao AllowMe, entre em contato com o nosso suporte em [email protected]
2. Inicializando a Biometria Facial
Com sua instância da classe AllowMe pronta, basta chamar o método startBiometrics fornecendo os seguintes parâmetros:
- appCompatActivity: A activity que está realizando essa chamada.
- onResult: ((result: BiometricsResult) -> Unit): Callback com o retorno da chamada da biometria. O objeto biometricsResult contém o payload, o path e o errorType (caso tenha ocorrido algum erro).Exemplos de como realizar esta chamada:
Caso prefira, o método startBiometrics possui um método em overload que suporta os seguintes parâmetros:
- activity: A activity que está realizando essa chamada.
- biometricsCallback: Objeto com funções de callback.
// Assinatura do método startBiometrics usando estratégia de um objeto de callback
fun startBiometrics(
activity: ComponentActivity,
callback: BiometricsCallback
)
Exemplo de como realizar esta chamada pode ser realizada:
// Exemplo de chamada usando callback em kotlin
allowMe.startBiometrics(this, object : BiometricsCallback {
override fun onResult(biometricsResult: BiometricsResult) {
if (biometricsResult.errorType == null) {
handleSuccessResult(it)
} else {
handleError(it.errorType!!)
}
}
})
2.1 Iniciando a Biometria Facial da Facetec
O SDK AllowMe agora disponibiliza dois provedores para a biometria facial: um proprietário e a biometria facial da Facetec. Para inicializar a Facetec será necessário algumas modificações:
Para facilitar a integração, o SDK AllowMe e o SDK Facetec são distribuídos juntos através de outro SDK. Assim, é necessário importar no build.gradle a biblioteca br.com.serasaexperian.android.facetec:serasa-sdk:<versao> no lugar da versão standalone do AllowMe SDK br.com.allowme.android:allowme-sdk:<versao>.
dependencies {
// Importanto a última versão do SDK que engloba o SDK AllowMe e o SDK Facetec
// No lugar da versão do SDK AllowMe Standalone
// implementation ("br.com.allowme.android:allowme-sdk:3.4.9-stage")
// Homologação
implementation ("br.com.serasaexperian.android.facetec:serasa-sdk:3.4.9-stage")
// No lugar da versão do SDK AllowMe Standalone
// implementation ("br.com.allowme.android:allowme-sdk:3.4.9")
// Produção
implementation ("br.com.serasaexperian.android.facetec:serasa-sdk:3.4.9")
}
Após esta config inicial, a biometria da Facetec está funcional. Entretanto será necessário tratar os possíveis erros específicos que podem ocorrer com a utilização da Facetec. Por favor, verifique a seção Tratando erros de Provedor - Facetec.
Além disso é possível customizar a biometria facial da Facetec. Por favor, verifique a seção Customização de Layout - Facetec
2.2 Modelo do BiometricsResult que será retornado
Abaixo segue o objeto que será retornado pela biometria facial (para qualquer um dos providers existentes).
@Parcelize
data class BiometricsResult(
val payload: String = "",
val paths: List<String> = listOf(),
val errorType: BiometricsErrors? = null
) : Parcelable
- payload: é o fingerprint da transação biométrica.
- paths: é a lista contendo o caminho de cada uma das imagens que foi capturada pela biometria. Para o provider AllowMe (provider default) a quantidade de imagens é igual a quatro fotos. Caso a aplicação esteja utilizando o provider Facetec a quantidade de imagens é igual a duas fotos.
- errorType: caso tenha acontecido algum erro durante o processo de biometria facial este valor (enum), é retornado. Caso contrário ele deverá ser nulo.
3.Tipos de erros
O BiometricsResult é o objeto retornado para a sua activity após o processo de biometria facial. Dentro deste objeto, podemos destacar o atributo errorType, um enum que contém o tipo de erro que pode ter acontecido no fluxo da Biometria. Seguem os possíveis valores que este enum pode assumir:
- PERMISSION_NOT_GRANTED_EXCEPTION: A permissão para acessar a câmera foi negada pelo usuário
- SDK_IS_NOT_READY_EXCEPTION: Sdk não foi inicializado antes de abrir o fluxo da biometria.
- GOOGLE_PLAY_SERVICES_EXCEPTION: O dispositivo que está executando a aplicação possui uma versão do Google Play Services antiga (mínima exigida, versão 16) ou está com o Google Play Services desativado.
- TIMEOUT_EXCEPTION: O tempo total de captura foi atingido e o usuário não realizou a captura neste período.
- INTERNAL_RESULT_ERROR: Erro interno na captura da imagem.
- CAMERA_ERROR: Erro na ativação / preview da câmera.
- TAKE_PICTURE_ERROR: Erro genérico no momento da captura.
- FACE_DETECTION_ERROR: Erro no momento de processar e analisar um rosto / face.
- CAN_NOT_SAVE_IMAGE: Erro no salvamento da imagem.
- CAN_NOT_OPEN_FRONT_CAMERA: Câmera frontal não pode ser aberta neste momento (não existe câmera frontal ou outra aplicação não fez o release da câmera de maneira correta).
- CANCELED_BY_USER: O Usuário cancelou o fluxo de Biometria Facial (apertou no botão voltar / back)
- PROVIDER_ERROR: Erro com um provedor externo (ex: facetec).
Desta forma, a aplicação poderá tratar estes erros e retonar a mensagem adequada ao usuário. Abaixo segue um exemplo de como o objeto biometricsResult pode ser tratado para extrair as informações de erro.
Erros Específicos Provider
Caso um erro ocorra com um provedor externo (ex.: Facetec), a propriedade detailedError que possuí tipo Any / Object será preenchida com o valor do erro específico deste provider.
3.1 Tratando erros gerados pelo provedor (Facetec)
Caso o erro tenha sido gerado por um provedor de biometria externo como Facetec, por exemplo, o erro será reencaminhado através da propriedade detailedError e o biometricsError assumirá o valor de PROVIDER_ERROR.
Os erros do provider Facetec são classificados em dois grandes tipos:
- FaceTecSDKStatus: podem ocorrer no momento da inicialização do SDK Facetec.
- FaceTecSessionStatus: podem ocorrer no momento da captura da biometria facial da Facetec.
Podemos tratar cada um dos erros específicos do provider como mostrado no método de exemplo abaixo:
Tratamento de Erros
Não é necessário tratar todos os tipos de erros do provider. Sugerimos que os erros mais específicos que fizerem sentido a aplicação sejam tratados em fluxos alternativos e o restante como um único fluxo genérico.
4. Customização de Layout
4.1 Telas e Customização
Customização
As instruções abaixo vão lhe guiar na implementação e customização da nova biometria facial, disponível a partir das versões do SDK maiores que 3.0.0.
É possível customizar o layout da AllowMeBiometricsActivity de forma que a tipografia, o tempo em segundos que a AllowMeBiometricsActivity vai esperar pelo usuário antes de retornar um erro e as cores da nossa Activity sigam a mesma identidade visual do seu aplicativo.
4.2 Configurações Gerais
As configurações gerais tem efeito em todo o processo da biometria (todas as telas). Para isso, você pode criar um arquivo dentro do diretório de resources (/res) com as cores e textos que desejar. Abaixo, uma lista de variáveis que podem ser modificadas.
variável | Tipo | Descrição | Valor padrão |
---|---|---|---|
allowMeBiometricsConfig_screenTitle | String | Título que se apresenta na tela de biometria na actionbar | " " |
allowMeBiometricsConfig_timeoutInSeconds | Inteiro | Tempo em segundos máximo para que a biometria seja finalizada | 180 |
allowMeBiometricsConfig_alignTitleCenter | Boleano | Valor que determina se o título da actionbar deve ficar ao centro ou não | false |
allowMeBiometricsConfig_voiceInstructionsEnabled | Boleano | Controla se o áudio com as instruções será ativado (caso a linguagem esteja em português, inglês ou espanhol) | true |
allowMeBiometricsConfig_textFont | String | Tipo da fonte (font-family) dos textos mostrados durante o processo de biometria | sans-serif-black |
allowMeBiometricsConfig_textSize | Dimens | Tamanho dos textos apresentados | 24sp |
allowMeBiometricsConfig_enableInstructionsCloseButton | Boleano | Valor que determina se o botão superior direito para fechar o fluxo na tela de instruções pode ser mostrado | true |
allowMeBiometricsConfig_enableCaptureCloseButton | Boleano | Valor que determina se o botão superior direito para fechar o fluxo na tela de captura pode ser mostrado | true |
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Título da action bar -->
<string name="allowMeBiometricsConfig_screenTitle"> </string>
<!-- Tempo em segundos total do processo de Biometria. Depois do tempo estitulado, a biometria é finalizada e retorna TIMEOUT_EXCEPTION -->
<integer name="allowMeBiometricsConfig_timeoutInSeconds">180</integer>
<!-- Referente ao título da actionbar se ele deve ser centralizado ou não -->
<bool name="allowMeBiometricsConfig_alignTitleCenter">false</bool>
<!-- Habilita / Desabilita as instruções de voz -->
<bool name="allowMeBiometricsConfig_voiceInstructionsEnabled">true</bool>
<!-- Fonte dos textos apresentados no processo de biometria -->
<string name="allowMeBiometricsConfig_textFont">sans-serif-black</string>
<!-- Tamanho da Fonte dos textos apresentados no processo de biometria -->
<dimen name="allowMeBiometricsConfig_textSize">24sp</dimen>
<!-- Habilita / Desabilitar botão de fechar na tela de Instruções -->
<dimen name="allowMeBiometricsConfig_enableInstructionsCloseButton">true</dimen>
<!-- Habilita / Desabilitar botão de fechar na tela de Captura -->
<dimen name="allowMeBiometricsConfig_enableCaptureCloseButton">true</dimen>
</resources>
4.3 Telas de Carregamento
As telas de carregamento aparecem antes da inicialização do processo de captura e após a conclusão dele. Elas são importantes porque é durante esses intervalos que o SDK realiza os procedimentos necessários para garantir a captura e o envio de fotos de maneira segura. Observe abaixo a aparência de uma tela de carregamento padrão do SDK e as possibilidades de customização.

A imagem mostra a implementação padrão dessas telas, caso nenhuma configuração específica seja passada, mas você tem total liberdade para customizar a tela e deixar ela com a identidade visual da sua empresa! Para isso, você pode criar arquivos de cores (colors.xml), textos (strings.xml) ou até mesmo imagens dentro do diretório /res/resources/drawable com as cores e textos que desejar. Abaixo, uma lista de variáveis que podem ser modificadas.
TIP
Ex.: Resource da Tela de Carregamento (strings.xml)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Título da tela de Carregamento -->
<string name="allowMeBiometricsLoadingCustomization_startingText">A seguir posicione seu rosto dentro da forma que irá aparecer</string>
<!-- Título da tela final de análise -->
<string name="allowMeBiometricsLoadingCustomization_finalText">Analisando as imagens capturadas</string>
</resources>
TIP
Ex.: Resource da Tela de Carregamento (colors.xml)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Cor dos textos das telas de carregamento e de análise -->
<color name="allowMeBiometricsLoadingCustomization_textColor">#5E6976</color>
<!-- Background das telas de carregamento e de análise -->
<color name="allowMeBiometricsLoadingCustomization_backgroundColor">#FFFFFF</color>
<!-- Cor principal da animação -->
<color name="allowMeBiometricsLoadingCustomization_mainColorAnimation">#002DD1</color>
<!-- Cor secundária da animação -->
<color name="allowMeBiometricsLoadingCustomization_secondaryColorAnimation">#1CD1A4</color>
</resources>
4.4 Telas de Captura
As telas de captura correspondem às telas que guiam o usuário no processo de biometria facial. Essa tela exibe instruções que podem ser lidas ou ouvidas pelos usuários e que, assim, indicam a ação que ele deve realizar. A imagem abaixo também mostra a aparência das telas de captura e as possibilidades de customização.


Para isso, você pode criar um arquivo dentro do diretório de resources (dentro do diretório /res) com as cores. Abaixo, uma lista de variáveis que podem ser modificadas.
variável | Tipo | Descrição | Valor padrão |
---|---|---|---|
allowMeBiometricsCaptureCustomization_textColor | Cor | cor dos textos de instruções que serão exibidos durante a captura | (Branco) #FFFFFF |
allowMeBiometricsCaptureCustomization_progressBarColor | Cor | cor da barra de progresso | (Preto) #FFFFFF |
allowMeBiometricsCaptureCustomization_backgroundColor | Cor | cor do background da tela de captura | (Preto) #000000 |
allowMeBiometricsCaptureCustomization_baseCoachmarkColor | Cor | cor da marcação de rosto de base | (Cinza) #ACACAE |
allowMeBiometricsCaptureCustomization_progressCoachmarkColor | Cor | cor da marcação de rosto de preenchimento. Também define a cor da animação que é exibida quando uma captura é realizada. | (Branco) #FFFFFF |
allowMeBiometricsCaptureCustomization_countdownColor | Cor | cor do contador que será exibido antes da captura. Se não for definido, será igual a textColor | (Igual ao TextColor caso não definido) #FFFFFF |
TIP
Ex.: Resource relativo a cores da Tela de Captura (colors.xml)
<resources>
<!-- Cor dos textos informativos da tela de captura -->
<color name="allowMeBiometricsCaptureCustomization_textColor">#FFFFFF</color>
<!-- Cor dos elementos do progress view (step view) -->
<color name="allowMeBiometricsCaptureCustomization_progressBarColor">#FFFFFF</color>
<!-- Background da tela de captura (Obs.: a propriedade alfa será aplicada juntamente com esta cor) -->
<color name="allowMeBiometricsCaptureCustomization_backgroundColor">#000000</color>
<!-- Cor principal do coachmark onde a face deve ser posicionada -->
<color name="allowMeBiometricsCaptureCustomization_baseCoachmarkColor">#ACACAE</color>
<!--
Cor do progresso do coachmark usado pela animação a medida que o usuário for
fazendo os passos corretos
-->
<color name="allowMeBiometricsCaptureCustomization_progressCoachmarkColor">#FFFFFF</color>
<!--
Cor do texto que apresenta o contador (3, 2, 1).
Por padrão, esta propriedade tem o mesmo valor do texto informativo.
-->
<color name="allowMeBiometricsCaptureCustomization_countdownColor">@color/allowMeBiometricsCaptureCustomization_textColor</color>
</resources>
Em relação aos textos da captura, também é possível modificá-los. Para isso, você pode criar um arquivo dentro do diretório de resources (dentro do diretório /res) com os textos que deseja modificar. Abaixo, uma lista de variáveis que podem ser modificadas:
variável | Tipo | Descrição | Valor padrão |
---|---|---|---|
allowMeBiometricsCaptureInstructions_moveAway | String | texto que informa ao usuário para se afastar da tela | "Afaste o aparelho do seu rosto" |
allowMeBiometricsCaptureInstructions_getCloser | String | texto que informa ao usuário para se aproximar da tela | "Aproxime o aparelho do seu rosto" |
allowMeBiometricsCaptureInstructions_wrongOrientation | Stringr | texto que informa ao usuário que a orientação do rosto na tela está incorreta | "Posição incorreta, alinhe seu rosto" |
allowMeBiometricsCaptureInstructions_frameYourFace | String | texto que informa ao usuário encaixar o rosto na tela | "Posicione o aparelho na \ndireção do rosto" |
allowMeBiometricsCaptureInstructions_blink | Stringr | texto que informa ao usuário que ele deve piscar | "Agora, pisque"#FFFFFF |
allowMeBiometricsCaptureInstructions_smile | String | texto que informa ao usuário que ele deve sorrir | "Agora, sorria" |
allowMeBiometricsCaptureInstructions_delay | String | texto que informa ao usuário que ele deve segurar firme e aguardar. O countdown ocorrerá junto com esse texto. | "Tente não se mexer" |
TIP
Ex.: Resource relativo a textos da Tela de Captura (strings.xml)
<resources>
<!-- Texto referente a instrução quando o usuário precisa se afastar da câmera -->
<string name="allowMeBiometricsCaptureInstructions_moveAway">Afaste o aparelho do seu rosto</string>
<!-- Texto referente a instrução quando o usuário precisa se aproximar da câmera -->
<string name="allowMeBiometricsCaptureInstructions_getCloser">Aproxime o aparelho do seu rosto</string>
<!-- Texto referente a instrução quando o usuário está na posição (orientaçã) incorreta em relação ao device -->
<string name="allowMeBiometricsCaptureInstructions_wrongOrientation">Posição incorreta, alinhe seu rosto<string>
<!-- Texto referente a instrução quando a face do usuário não foi encontrada -->
<string name="allowMeBiometricsCaptureInstructions_frameYourFace">Posicione o aparelho na \ndireção do rosto<string>
<!-- Texto referente a instrução solicitando para piscar -->
<string name="allowMeBiometricsCaptureInstructions_blink">Agora, pisque</string>
<!-- Texto referente a instrução solicitando para sorrir -->
<string name="allowMeBiometricsCaptureInstructions_smile">Agora, sorria</string>
<!-- Texto referente a instrução para que o usuário não se mova durante alguns segundos (para capturar a fotografia) -->
<string name="allowMeBiometricsCaptureInstructions_delay">Tente não se mexer</string>
</resources>
Você sabia?
Os textos também podem ser customizados em outras linguas. Por padrão, todos os textos descritos acima já estão traduzidos para Inglês e Espanhol. Caso queira adicionar mais traduções, adicione os recursos corretos no diretório /res correspondente
variável | Português | Inglês | Espanhol |
---|---|---|---|
allowMeBiometricsCaptureInstructions_moveAway | Afaste o aparelho do seu rosto | Bring the device away from your face | Aleja el dispositivo de tu rostro |
allowMeBiometricsCaptureInstructions_getCloser | Aproxime o aparelho do seu rosto | Bring the device closer to your face | Acerca el dispositivo a tu rostro |
allowMeBiometricsCaptureInstructions_wrongOrientation | Posição incorreta, alinhe seu rosto | Incorrect position, line up your face | Posición incorrecta, alinea tu rostro |
allowMeBiometricsCaptureInstructions_frameYourFace | Posicione o aparelho na direção do rosto | Fit your face into the shape below | Posiciona el dispositivo hacia tu rostro |
allowMeBiometricsCaptureInstructions_blink | Agora, pisque | Now, blink | Ahora, parpadea |
allowMeBiometricsCaptureInstructions_smile | Agora, sorria | Now, smile | Ahora, sonríe |
allowMeBiometricsCaptureInstructions_delay | Tente não se mexer | tHold tight | Trata de no moverte |
4.5 Telas Wizard
As telas wizard são uma opção para facilitar o seu trabalho e tornar a integração com a biometria facial do AllowMe ainda mais rápida e fácil. Você pode optar por usar as telas wizard através da criação do recurso allowMeBiometricsConfig_enableWizardInstructions que mostraremos na próxima seção. O fluxo do SDK com telas wizard funciona como demostrado, de maneira simplificada, na imagem abaixo. Observe que o seu aplicativo ainda receberá o resultado através activity result se o processo for concluido com sucesso ou se o usuário decidir fechar alguma das telas de erro. Nessa última situação, a responsabilidade passa para o seu aplicativo definir um fluxo alternativo, caso seja necessário.

De maneira simples, as telas wizard lidam com todos os processos necessários para que a biometria facial ocorra de maneira satisfatória, garantindo a experiência do seu usuário. Elas são totalmente customizáveis para se adaptar a qualquer design. Dentro desse conjunto, temos:
- Tela de Instruções
- Telas de Erros
- Tela de Confirmação de Saída
4.5.1 Configurações Gerais
As telas wizard são habilitadas / desabilitadas através de um recurso boleano. Por padrão o SDK deixa as telas desativadas, mas você pode ativá-las definindo o atributo allowMeBiometricsConfig_enableWizardInstructions dentro de um arquivo bools.xml (do seu projeto) como mostrado abaixo:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Ativa todas as telas wizard -->
<bool name="allowMeBiometricsConfig_enableWizardInstructions">true</bool>
</resources>
4.5.2 Tela de Instruções
A tela de instruções é exibida antes da tela de carregamento, quando o boleano é definido como true para o nome de recurso allowMeBiometricsConfig_enableWizardInstructions. Nela, são exibidas informações importantes para o usuário antes de iniciar a captura. Abaixo, é possível ver todas as customizações disponíveis.


Valores dos Recursos
variável | Tipo | Descrição | Valor padrão |
---|---|---|---|
allowMeBiometricsWizard_title | String | Título da tela de instruções | "Autenticação facial" |
allowMeBiometricsWizard_first | String | Texto referente a primeira instrução | `"Procure um local iluminado" |
allowMeBiometricsWizard_second | Stringr | Texto referente a segunda instrução | "Retire todos os acessórios" |
allowMeBiometricsWizard_third | String | Texto referente a terceira instrução | "Câmera na direção do rosto" |
allowMeBiometricsWizard_fourth | Stringr | Texto referente a quarta instrução | "Siga as instruções" |
allowMeBiometricsWizard_next | String | Texto do botão | "Avançar" |
allowMeBiometricsWizardCustomization_titleColor | Cor | Cor do título da tela de instruções | "#1E437A" |
allowMeBiometricsInstructionsCustomization_commonTextColor | Cor | Cor dos textos das instruções | "#5E6976" |
allowMeBiometricsInstructionsCustomization_iconColor | Cor | Cor dos ícones das instruções | "#2A5595" |
allowMeBiometricsInstructionsCustomization_advanceButtonColor | Cor | Cor do botão Avançar | "#002DD1" |
allowMeBiometricsInstructionsWizard_titleSize | dimens | Tamanho do Título (em Sp) | Tem diferentes tamanhos baseado na densidade |
allowMeBiometricsInstructionsWizard_commonTextSize | dimens | Tamanho dos Textos (em Sp) | Tem diferentes tamanhos baseado na densidade |
allowme_biometrics_wizard_instructions_device | drawable | Imagem apresentada na tela de instruções | Image gerenciada pelo SDK |
allowme_biometrics_wizard_first_icon | drawable | Imagem relativa a primeira instrução na tela de instruções | Image gerenciada pelo SDK |
allowme_biometrics_wizard_second_icon | drawable | Imagem relativa a segunda instrução na tela de instruções | Image gerenciada pelo SDK |
allowme_biometrics_wizard_third_icon | drawable | Imagem relativa a terceira instrução na tela de instruções | Image gerenciada pelo SDK |
allowme_biometrics_wizard_fourth_icon | drawable | Imagem relativa a quarta instrução na tela de instruções | Image gerenciada pelo SDK |
Ex.: Customizações dos textos no strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="allowMeBiometricsWizard_title">Autenticação facial</string>
<string name="allowMeBiometricsWizard_first">Procure um local iluminado</string>
<string name="allowMeBiometricsWizard_second">Retire todos os acessórios</string>
<string name="allowMeBiometricsWizard_third">Câmera na direção do rosto</string>
<string name="allowMeBiometricsWizard_fourth">Siga as instruções</string>
<string name="allowMeBiometricsWizard_next">Avançar</string>
</resources>
Ex.: Customizações das cores no colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="allowMeBiometricsWizardCustomization_titleColor">"#1E437A"</color>
<color name="allowMeBiometricsInstructionsCustomization_commonTextColor">#5E6976</color>
</resources>
Ex.: Customizações das dimensões no dimens.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="allowMeBiometricsInstructionsWizard_titleSize">30sp</color>
<dimen name="allowMeBiometricsInstructionsWizard_commonTextSize">12sp</color>
</resources>
Ex.: Customizações do drawable
Devem ser criados imagens (com os nomes dos drawable vistos em Valores dos Recursos) dentro do diretórios:
- /res/drawable,
- /res/drawable-hdpi,
- /res/drawable-xhdpi,
- /res/drawable-xxhpi,
- etc
Você Sabia?
Os textos também podem ser customizados em outras linguas. Por padrão, todos os textos descritos acima já estão traduzidos para Inglês e Espanhol. Caso queira adicionar mais traduções, adicione os recursos corretos no diretório /res correspondente
Tabela Traduções (Instruções Iniciais)
variável | Português | Inglês | Espanhol |
---|---|---|---|
allowMeBiometricsWizard_title | Autenticação facial | Facial authentication | Autenticación facial |
allowMeBiometricsWizard_first | Procure um local iluminado | Find a well lit place | Busca un lugar luminoso |
allowMeBiometricsWizard_second | Retire todos os acessórios | Remove all accessories | Retira todos los accesorios |
allowMeBiometricsWizard_third | Câmera na direção do rosto | Camera at your face level | Cámara mirando hacia el rostro |
allowMeBiometricsWizard_fourth | Siga as instruções | Follow the instructions | Sigue las instrucciones |
allowMeBiometricsWizard_next | Avançar | Next | Siguiente |
4.5.3 Tela de Confirmação de Saída

Sempre que o usuário apertar no botão back ou clicar no botão de fechar ou cancelar (botão "X" que aparece na tela), será exibido um modal de confirmação para garantir que o usuário não realize essa ação indevidamente. O modal também alerta o usuário que o processo será todo perdido caso ele realmente feche as telas do SDK. A customização desse modal se dá através dos seguintes recursos:
variável | Tipo | Descrição | Valor padrão |
---|---|---|---|
allowMeBiometricsConfirmation_title_dialog | String | Título da tela de dialog | "Você deseja sair?" |
allowMeBiometricsConfirmation_message_dialog | String | Texto referente a mensagem do dialog | "Se sair agora você terá que fazer o processo novamente" |
allowMeBiometricsConfirmation_exit | String | Texto do botão pare confirmar sair | "Sim, quero sair" |
allowMeBiometricsConfirmation_continue | String | Texto do botão para continuar no processo | "Continuar por aqui" |
allowMeBiometricsDialogBackground_color | Cor | Cor do background onde estão o título e a mensagem de erro são apresentados | "#FFFFFF" |
allowMeBiometricsDialogConfirmationTitleText_color | Cor | Cor do título | "#384553" |
allowMeBiometricsDialogConfirmationText_color | Cor | Cor do texto | "#5E6976" |
allowMeBiometricsDialogConfirmationTitleText_size | dimens | Tamanho do Título (em Sp) | Tem diferentes tamanhos baseado na densidade |
allowMeBiometricsDialogConfirmationText_size | dimens | Tamanho do Texto (em Sp) | Tem diferentes tamanhos baseado na densidade |
allowme_biometrics_warning | drawable | Imagem apresentada na tela de erros de timeout | Image gerenciada pelo SDK |
Você Sabia?
Os textos também podem ser customizados em outras linguas. Por padrão, todos os textos descritos acima já estão traduzidos para Inglês e Espanhol. Caso queira adicionar mais traduções, adicione os recursos corretos no diretório /res correspondente
Tabela Traduções (Dialog)
Chave | Português | Inglês | Espanhol |
---|---|---|---|
allowMeBiometricsConfirmation_title_dialog | Você deseja sair? | Do you want to quit? | ¿Quieres salir? |
allowMeBiometricsConfirmation_message_dialog | Se sair agora você terá que fazer o processo novamente | If you leave now, all progress will be lost | Si sales ahora tendrás que repetir el proceso. |
allowMeBiometricsConfirmation_exit | Sim, quero sair | Yes, I do | Si, quiero salir |
allowMeBiometricsConfirmation_continue | Continuar por aqui | Stay here | Continuar aquí |
4.5.4 Tela de Erros
As telas de erro garantem o tratamento adequado de erros dentro da biometria facial e a tomada de decisões adequadas para cada erro. As telas possíveis são mostradas abaixo.

Como mostrado na imagem, dentro da tela de erro o usuário pode se manter dentro do fluxo do SDK ou desistir do processo usando o botão de fechar. No segundo caso, nós retornamos o erro para o aplicativo do cliente através do processo exposto na seção 2. Chamada da Activity responsável pela biometria, e é responsabilidade do aplicativo do cliente tratar esse erro de acordo com o fluxo ideal.
No total, são 3 telas de erros existentes, cada uma delas sendo totalmente personalizável através dos recursos como cores, textos e imagens (dentros do diretório /res)
4.5.4.1 Tela de Erros - Erro Genérico (Processo não concluído)

Esta tela de erros é apresentada caso algum dos erros aconteça:
- BiometricsErrors.INTERNAL_RESULT_ERROR
- BiometricsErrors.CAMERA_ERROR
- BiometricsErrors.TAKE_PICTURE_ERROR
- BiometricsErrors.FACE_DETECTION_ERROR
- BiometricsErrors.CAN_NOT_SAVE_IMAGE
- BiometricsErrors.CAN_NOT_OPEN_FRONT_CAMERA
Neste tela, caso o usuário aperte no botão "Tentar novamente" o processo de biometria irá recomeçar.
As opções de customização desta tela podem ser feitas por você levando em conta os seguintes atributos:
variável | Tipo | Descrição | Valor padrão |
---|---|---|---|
allowMeBiometricsError_generic_error_title | String | Título da tela de erro genérico | "Processo não concluído" |
allowMeBiometricsError_generic_error_message | String | Texto referente a mensagem de erros genérica | "Ocorreu uma falha ao concluir o processo. Por favor, tente novamente" |
allowMeBiometricsError_next | String | Texto do botão para tentar novamente | "Tentar Novamente" |
allowMeBiometricsError_backgroundColor | Cor | Cor de background superior | "#F1F1F1" |
allowMeBiometricsCustomization_backgroundColorCurvedEdge | Cor | Cor do background onde estão o título e a mensagem de erro | "#FFFFFF" |
allowMeBiometricsInstructionsCustomization_advanceButtonColor | Cor | Cor do botão avançar | "#002DD1" |
allowMeBiometricsError_textTitleSize | dimens | Tamanho do Título (em Sp) | Tem diferentes tamanhos baseado na densidade |
allowMeBiometricsErrorText_color | dimens | Tamanho do Texto (em Sp) | Tem diferentes tamanhos baseado na densidade |
allowme_biometrics_generic_error | drawable | Imagem apresentada na tela de erros genérico | Image gerenciada pelo SDK |
4.5.4.2 Tela de Erros - Erro de Permissão

Esta tela de erros é apresentada caso o usuário não tenha dado permissão de acesso a câmera no momento em que a biometria é inicializada, ou seja, quando o SDK devolve o erro BiometricsErrors.PERMISSION_NOT_GRANTED_EXCEPTION.
Neste tela, caso o usuário aperte no botão "Permitir Acesso" o usário será enviado para a tela de configurações (Settings) para que este possa permitir o recurso de câmera e assim dar continuidade ao processo de biometria.
As opções de customização desta tela podem ser feitas por você levando em conta os seguintes atributos:
variável | Tipo | Descrição | Valor padrão |
---|---|---|---|
allowMeBiometricsPermission_title | String | Título da tela de erro permissão | "Acesso à câmera" |
allowMeBiometricsPermission_message | String | Texto referente a mensagem de erros de permissão | "Para continuar é necessário liberar o acesso à câmera do seu dispositivo" |
allowMeBiometricsPermission_next | String | Texto do botão permitir acesso a câmera | "Permitir Acesso" |
allowMeBiometricsError_backgroundColor | Cor | Cor de background superior | "#F1F1F1" |
allowMeBiometricsCustomization_backgroundColorCurvedEdge | Cor | Cor do background onde estão o título e a mensagem de erro | "#FFFFFF" |
allowMeBiometricsInstructionsCustomization_advanceButtonColor | Cor | Cor do botão avançar | "#002DD1" |
allowMeBiometricsError_textTitleSize | dimens | Tamanho do Título (em Sp) | Tem diferentes tamanhos baseado na densidade |
allowMeBiometricsErrorText_color | dimens | Tamanho do Texto (em Sp)) | Tem diferentes tamanhos baseado na densidade |
permission_biometrics_error | drawable | Imagem apresentada na tela de erros de permissão | Image gerenciada pelo SDK |
4.5.4.3 Tela de Erros - Erro de Timeout

Esta tela de erros é apresentada quando o processo de biometria não ocorre no tempo esperado, ou seja, o usuário não foi capaz ou não terminou o processo no tempo definido em allowMeBiometricsConfig_timeoutInSeconds (padrão 180 segundos).
Ou seja, esta tela é mostrada quando o SDK devolve o erro BiometricsErrors.TIMEOUT_EXCEPTION.
Neste tela, caso o usuário aperte no botão "Tentar novamente" o processo de biometria irá recomeçar.
variável | Tipo | Descrição | Valor padrão |
---|---|---|---|
allowMeBiometricsTimeout_title | String | Título da tela de erro de timeout | "Reinicie o processo" |
allowMeBiometricsTimeout_message | String | Texto referente a mensagem de erros de permissão | "O tempo para concluir o processo\nexpirou. Será necessário começar novamente." |
allowMeBiometricsTimeout_next | String | Texto do botão pare reiniciar o processo | "Tentar Novamente" |
allowMeBiometricsError_backgroundColor | Cor | Cor de background superior | "#F1F1F1" |
allowMeBiometricsCustomization_backgroundColorCurvedEdge | Cor | Cor do background onde estão o título e a mensagem de erro | "#FFFFFF" |
allowMeBiometricsInstructionsCustomization_advanceButtonColor | Cor | Cor do botão avançar | "#002DD1" |
allowMeBiometricsError_textTitleSize | dimens | Tamanho do Título (em Sp) | Tem diferentes tamanhos baseado na densidade |
allowMeBiometricsErrorText_color | dimens | Tamanho do Texto (em Sp) | Tem diferentes tamanhos baseado na densidade |
allowme_biometrics_timeout_error | drawable | Imagem apresentada na tela de erros de timeout | Image gerenciada pelo SDK |
TIP
Os textos também podem ser customizados em outras linguas. Por padrão, todos os textos descritos acima já estão traduzidos para Inglês e Espanhol. Caso queira adicionar mais traduções, adicione os recursos corretos no diretório /res correspondente
Tabela Traduções (Telas de Erros e Dialog)
Chave | Português | Inglês | Espanhol |
---|---|---|---|
allowMeBiometricsError_generic_error_title | Processo não concluído | Operation could not be completed | Something went wrong. Please, try again |
allowMeBiometricsError_generic_error_message | Ocorreu uma falha ao concluir o processo. Por favor, tente novamente. | Find a well lit place | Busca un lugar luminoso |
allowMeBiometricsPermission_title | Acesso à câmera | Camera access required | Se requiere acceso a la cámara |
allowMeBiometricsPermission_message | Para continuar é necessário liberar o acesso à câmera do seu dispositivo | To continue, you must allow access to your device's camera | Para continuar, debes permitir el acceso a la cámara de tu dispositivo |
allowMeBiometricsTimeout_title | Reinicie o processo | Camera access required | Se requiere acceso a la cámara |
allowMeBiometricsTimeout_message | Para continuar é necessário liberar o acesso à câmera do seu dispositivo | To continue, you must allow access to your device's camera | Para continuar, debes permitir el acceso a la cámara de tu dispositivo |
allowMeBiometricsTimeout_next | Permitir Acesso | Allow access | Permitir el acceso |
4.6 Adicionando Header (ActionBar)
Também é possível adicionar ou remover o título (ActionBar) utilizando o tema que você desejar.Desta forma, pode-se modificar o título da ActionBar bem como se ela estará visível.
Para isto é necessário, dentro de sua aplicação, fazer as seguintes modificações:
Modificando AndroidManifest.xmlA primeira atividade a ser feita é adicionar o namespace tools (xmlns:tools) diretamente ao seu manifest:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="your_package_name">
Em seguida, dentro de "Application", adicionar o seguinte bloco:
<application>
<!-- ... -->
<activity
android:theme="@style/AppTheme"
android:name="br.com.allowme.android.allowmesdk.biometrics.view.AllowMeBiometricsActivity"
tools:replace="android:theme"
/>
</application>
Assim, a tela AllowMeBiometricsActivity será configurada para utilizar o tema da aplicação.
5. Customização de Layout - Facetec
Por padrão a biometria facial da Facetec já é pré-configurada em nosso SDK, mas possibilitamos que a aplicação possa customizar temas, cores, textos pré-definidos etc.
Caso queira modificar estas configurações podemos passar como parâmetro do método startBiometrics a customização da Facetec através do objeto faceTecCustomization:
Exemplo: Modificando a customizações da Facetec
val allowMe = AllowMe.getInstance(applicationContext, "your-api-key-here")
// Criando o objeto FacetecCustomization que será passado por parâmetro
val facetecCustomization = FaceTecCustomization()
// Customizando a cor de background da facetec
facetecCustomization.frameCustomization.backgroundColor = Color.parseColor("#C0C0C0")
// Customizando as bordas onde a câmera mostra a captura de tela.
facetecCustomization.frameCustomization.borderWidth = 3
// Outras configs
// facetecCustomization ...
// Fim de outras configs
// Chamada a biometria utilizando as customizações realizadas acima
allowMe.startBiometrics(this, facetecCustomization) { biometricsResult ->
// ... mesma manipulação feita na biometria facial do AllowMe.
}
Customizações e Opções - Facetec
Para mais informações sobre como customizar o layout do FaceTecSDK, acesse a documentação da Facetec - ui customization (opens new window)bem como os textos que podem ser modificados documentação da Facetec - Text & Language Editing
Updated 1 day ago