Liveness 3D

Guia de customização de telas e textos para o Liveness 3D Android.

Customização das telas de instruções + permissão de câmera

Para customizar as telas de instruções, é necessário passar um XML por meio de um Bundle, que deve conter dois IDs obrigatórios (@+id/continueButton e @+id/backButton) para construir e atribuir as funções internamente. Ao fornecer esses IDs, é possível personalizar completamente o XML.

Exemplo de implementação:

private var startActivityForResult: ActivityResultLauncher<Intent>? = null

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        registerLiveness3DActivity()
    }

fun onLiveness3DClick() {
	startActivityForResult?.launch(Intent(this, Liveness3DActivity::class.java).apply {
    	putExtra(Liveness3DActivity.PARAM_LIVENESS3D_USER, liveness3DUser)
    	putExtra(Liveness3DActivity.PARAM_TEXTS, texts)
    	putExtra(Liveness3DActivity.PARAM_CUSTOM_INSTRUCTION_SCREEN, R.layout.activity_instructions_custom)
    	putExtra(Liveness3DActivity.PARAM_CUSTOM_PERMISSION_SCREEN, R.layout.activity_permission_camera_custom)
	}
}

Aqui, temos o exemplo de implementação para caso possua uma versão mais antiga do Kotlin.

fun onLiveness3DClick() {
    val intent = Intent(this, Liveness3DActivity::class.java).apply {
      	putExtra(Liveness3DActivity.PARAM_LIVENESS3D_USER, liveness3DUser)
    	putExtra(Liveness3DActivity.PARAM_TEXTS, texts)
    	putExtra(Liveness3DActivity.PARAM_CUSTOM_INSTRUCTION_SCREEN, R.layout.activity_instructions_custom)
    	putExtra(Liveness3DActivity.PARAM_CUSTOM_PERMISSION_SCREEN, R.layout.activity_permission_camera_custom)
    }
    startActivityForResult(intent, LIVENESS_3D_RESULT)
 }

Descrição dos parâmetros:

ParâmetroDescrição
PARAM_LIVENESS3D_USER Parâmetro referente as informações de configurações (appkey, enviroment, theme).
PARAM_TEXTS Parâmetro referente a lista comLiveness3DTextKey customizando os textos.
PARAM_CUSTOM_INSTRUCTION_SCREENParâmetro para customizar a tela de instruções que recebe um xml.
PARAM_CUSTOM_PERMISSION_SCREENParâmetro para customizar a tela de permissão de câmera também recebendo um xml.

👍

Para personalizações dos layouts a seguir:

É possível personalizar completamente os layouts, desde que se tenha os botões de continuar (1) e voltar (2) com os IDs @+id/continueButton e @+id/backButton, respectivamente.

IdentificadorDescrição
(1) @+id/backButtonParâmetro referente ao botão de voltar.
(2) @+id/continueButtonParâmetro referente ao botão de continuar.

Layout de instruções do Liveness

Layout de permissão da câmera


Customização dos textos por objeto

Nova forma de customização

Agora a activity Liveness3DActivity possui um novo parâmetro (PARAM_TEXTS) que recebe um HashMap tendo como chave o tipo Liveness3DTextKey e como valor uma string.

💡

Nota

A customização de textos da Liveness 3D não é feita mais pelo arquivo strings.xml.

val texts = hashMapOf<Liveness3DTextKey, String>(
    Liveness3DTextKey.READY_HEADER_1 to "Vamos Iniciar",
    Liveness3DTextKey.READY_HEADER_2 to "a jornada",
    Liveness3DTextKey.READY_MESSAGE_1 to "Instruções de como fazer",
    Liveness3DTextKey.READY_MESSAGE_2 to "o desafio do Liveness 3D.",
)

startActivityForResult?.launch(Intent(this, Liveness3DActivity::class.java).apply {
    putExtra(Liveness3DActivity.PARAM_LIVENESS3D_USER, liveness3DUser)
    putExtra(Liveness3DActivity.PARAM_TEXTS, texts)
})

Ready Screen

IdentificadorExemplos para uso de texto
(1) READY_HEADER_1Prepare-se para seu
(2) READY_HEADER_2reconhecimento facial.
(3) READY_MESSAGE_1Posicione o seu rosto na moldura, aproxime-se
(4) READY_MESSAGE_2e toque em começar.
(5) READY_BUTTONComeçar

Feedback

IdentificadorExemplos para uso de texto
FEEDBACK_CENTER_FACECentralize Seu Rosto
FEEDBACK_FACE_NOT_FOUNDEnquadre o Seu Rosto
FEEDBACK_FACE_NOT_LOOKING_STRAIGHT_AHEADOlhe Para Frente
FEEDBACK_FACE_NOT_UPRIGHTMantenha a Cabeça Reta
FEEDBACK_HOLD_STEADYSegure Firme
FEEDBACK_MOVE_PHONE_AWAYAfaste-se
FEEDBACK_MOVE_PHONE_CLOSERAproxime-se
FEEDBACK_MOVE_PHONE_TO_EYE_LEVELTelefone ao Nível dos Olhos
FEEDBACK_USE_EVEN_LIGHTINGIlumine Seu Rosto Uniformemente
FEEDBACK_FRAME_YOUR_FACEEncaixe Seu Rosto no Espaço Oval
FEEDBACK_LOOK_STRAIGHT_IN_OVALOlhe Para Frente
FEEDBACK_HOLD_STEADY_1Aguente Firme: 1
FEEDBACK_HOLD_STEADY_2Aguente Firme: 2
FEEDBACK_HOLD_STEADY_3Aguente Firme: 3
FEEDBACK_REMOVE_DARK_GLASSESTire Seus Óculos de Sol
FEEDBACK_NEUTRAL_EXPRESSIONFique Neutro, Não Sorria
FEEDBACK_EYES_STRAIGHT_AHEADOlhe Para Frente
FEEDBACK_CONDITIONS_TOO_BRIGHTAmbiente Muito Iluminado
FEEDBACK_BRIGHTEN_YOUR_ENVIRONMENTAmbiente Muito Escuro

Result Screen

IdentificadorExemplos para uso de texto
RESULT_UPLOAD_MESSAGEEnviando...
RESULT_SUCCESS_MESSAGESucesso

Retry Screen

IdentificadorExemplos para uso de texto
(1) RETRY_HEADERVamos tentar novamente?
(2) RETRY_SUBHEADERSiga o exemplo de foto ideal abaixo:
(3) RETRY_MESSAGE_SMILEExpressão Neutra, Sem Sorrir.
(3) RETRY_MESSAGE_LIGHTINGEvite reflexos e iluminação extrema.
(3) RETRY_MESSAGE_CONTRASTLimpe Sua Câmera.
(4) RETRY_YOUR_PICTURESua foto.
(5) RETRY_IDEAL_PICTUREFoto ideal.
(6) RETRY_BUTTONTentar novamente.

What’s Next