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âmetro | Tipo | Descrição |
|---|
apiBaseUrl | String | URL base da API de liveness |
apiKey | String | Chave de API para autenticação |
appName | String | Nome da aplicação para identificação |
cekClientId | String | ID do cliente para criptografia |
cekKeyId | String | ID da chave de criptografia |
cekEncryptionKey | String | Chave de criptografia |
localization | LivenessLocalization | Configuração de idioma e textos (opcional) |
Próximos Passos