Skip to main content

Permissões Necessárias

O SDK requer as seguintes permissões no AndroidManifest.xml:
<!-- Obrigatórias -->
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />

<!-- Camera feature declaration -->
<uses-feature android:name="android.hardware.camera" android:required="true" />
O SDK solicita automaticamente a permissão de câmera quando necessário. Se o usuário negar a permissão, o SDK exibirá um diálogo oferecendo opções para tentar novamente ou abrir as configurações do dispositivo.

Instalação

Passo 1: Adicionar o Arquivo AAR

Copie o arquivo liveness-hub-sdk-[version]-release.aar para a pasta libs do seu módulo app:
seu-projeto/
  app/
    libs/
      liveness-hub-sdk-[version]-release.aar
    build.gradle.kts

Passo 2: Configurar o build.gradle.kts

Adicione as seguintes configurações no arquivo app/build.gradle.kts:
android {
    namespace = "com.example.myapp"
    compileSdk = 36

    defaultConfig {
        applicationId = "com.example.myapp"
        minSdk = 24
        targetSdk = 36

        // Required for the SDK
        multiDexEnabled = true
    }

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = "17"
    }
}

dependencies {
    // ========================================
    // Liveness Hub SDK
    // ========================================
    implementation(files("libs/liveness-hub-sdk-[version]-release.aar"))

    // ========================================
    // Dependências Obrigatórias
    // ========================================

    // Koin - Injeção de Dependências
    implementation("io.insert-koin:koin-android:4.0.1")
    implementation("io.insert-koin:koin-core:4.0.1")

    // AndroidX Core
    implementation("androidx.core:core-ktx:1.17.0")
    implementation("androidx.appcompat:appcompat:1.7.1")
    implementation("androidx.activity:activity:1.8.0")
    implementation("androidx.constraintlayout:constraintlayout:2.2.1")
    implementation("com.google.android.material:material:1.13.0")
    implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.9.4")

    // CameraX - Obrigatório para captura facial
    implementation("androidx.camera:camera-core:1.5.0")
    implementation("androidx.camera:camera-camera2:1.5.0")
    implementation("androidx.camera:camera-lifecycle:1.5.0")
    implementation("androidx.camera:camera-view:1.5.0")

    // ML Kit Face Detection - Obrigatório para detecção facial
    implementation("com.google.mlkit:face-detection:16.1.7")

    // MediaPipe Vision - Opcional, para detecção facial aprimorada
    implementation("com.google.mediapipe:tasks-vision:0.10.14")

    // Rede
    implementation("com.squareup.retrofit2:retrofit:3.0.0")
    implementation("com.squareup.okhttp3:okhttp:5.1.0")
    implementation("com.squareup.okhttp3:logging-interceptor:5.1.0")
    implementation("com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0")
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0")

    // Segurança
    implementation("androidx.security:security-crypto:1.1.0")
}

Passo 3: Configurar Repositórios

No arquivo settings.gradle.kts do projeto, adicione os repositórios necessários:
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()

        // Repositórios adicionais necessários
        maven { url = uri("https://packagecloud.io/biopassid/dlibwrapper/maven2") }
        maven { url = uri("https://jitpack.io") }
        maven { url = uri("https://maven.fpregistry.io/releases") }
    }
}

Configuração Inicial

O SDK deve ser inicializado uma única vez na classe Application da sua aplicação:
package com.example.myapp

import android.app.Application
import com.valid.entry.LivenessHubSDK
import com.valid.entry.models.LivenessHubConfig

class MyApplication : Application() {

    override fun onCreate() {
        super.onCreate()
        initializeLivenessSDK()
    }

    private fun initializeLivenessSDK() {
        val config = LivenessHubConfig(
            apiBaseUrl = "https://api.yourserver.com",
            apiKey = "your-api-key",
            appName = "YourAppName",
            cekClientId = "your-client-id",
            cekKeyId = "your-key-id",
            cekEncryptionKey = "your-encryption-key"
        )

        LivenessHubSDK.init(
            applicationContext = this,
            config = config
        )
    }
}
Sempre inicialize o SDK na classe Application.onCreate() para garantir que esteja pronto antes de qualquer Activity.

Parâmetros de Configuração

ParâmetroTipoDescrição
apiBaseUrlStringURL base da API de liveness
apiKeyStringChave de API para autenticação
appNameStringNome da aplicação para identificação
cekClientIdStringID do cliente para criptografia
cekKeyIdStringID da chave de criptografia
cekEncryptionKeyStringChave de criptografia
localizationLivenessLocalizationConfiguração de idioma e textos (opcional)

Próximos Passos