Skip to content

Tích hợp Android SDK ​

Chụp khuôn mặt cho FaceAuthen bằng CAKE eKYC Android SDK, phiên bản 1.1.9. Entry point là CakeEkyc.

Yêu cầu build ​

Thông tinMô tả
Gradle7.4
minSdkVersion21
targetSdkVersion33
Kotlin1.7.10

Thêm dependency ​

groovy
dependencies {
    val core_version = "1.0.0"
    val ui_version = "1.0.2"
    val image_quality_version = "1.0.3"
    val ekyc_version = "1.1.8"

    implementation("vn.cake.ekyc.sdk:ekyc-core:$core_version")
    implementation("vn.cake.ekyc.sdk:ekyc-ui:$ui_version")
    implementation("vn.cake.ekyc.sdk:image-quality:$image_quality_version")
    implementation("vn.cake.ekyc.sdk:ekyc:$ekyc_version")
}

Khởi tạo ​

kotlin
private val logger = object : Logger {
    override fun info(log: String) {}
    override fun error(log: String) {}
    override fun warning(log: String) {}
}

val config = Config.Builder().apply {
    withLanguage("vi")
    withBaseUrl("<BASE_URL>")
    withToken(TokenProvider.from("<ACCESS_TOKEN>"))
    withLogger(logger)
}.build()

val ekycFuture = CakeEkyc.getInstance(applicationContext, config, executor)
val cakeEkyc = ekycFuture.get()

Chụp khuôn mặt ​

kotlin
val config = TakeFaceConfig(captureOnly = false, loadingView = customLoadingView)

val listener = object : FaceCapturingListener {
    override fun onEvent(event: EkycEvent) {}
    override fun onError(error: EkycError) {}
    override fun onSuccess(result: SelfieResult) {}
}

cakeEkyc.takeFaces(activity, config, listener)

SelfieResult mang theo faces đã chụp, sanityResult cho từng ảnh, và livenessResult.

TrườngKiểuMô tả
facesList<Face>?Các khuôn mặt đã chụp, mỗi khuôn mặt có image và gesture.
sanityResultList<EkycResponse<FaceSanityData>>?Response sanity cho từng ảnh.
livenessResultEkycResponse<FaceLivenessData>?Kết quả liveness.

Lấy face.image.id từ mỗi phần tử và truyền chúng vào mảng faces cho Đăng ký khuôn mặt hoặc Xác minh Face Authen.

Lỗi ​

TrườngKiểuMô tả
EkycError.UserCanceledError40001Người dùng nhấn back.
EkycError.TimeoutError40000Timeout.
EkycError.CameraError40003Mở camera thất bại.
EkycError.PermissionNotGranted40002Các quyền chưa được cấp.
EkycError.QualityFailed60002 / 60003FACE_SANITY_FAILED hoặc FACE_LIVENESS_FAILED.
EkycError.UnexpectedError50000Runtime exception.

Tải ảnh lên ​

Khi bạn chụp bên ngoài SDK, hãy tự tải bytes lên.

kotlin
val uploadResult = ekyc.upload(image = bitmap, label = "portrait", metaData = metaData)

val imageId = when (uploadResult) {
    is Result.Success -> uploadResult().data?.imageId
    is Result.Fail -> throw uploadResult.error
}

ByteArray cũng được chấp nhận: ekyc.upload(data = byteArray, label = "portrait", metaData = metaData).

→ Tải ảnh lên

Các kiểm tra riêng lẻ ​

Hữu ích khi bạn tự điều khiển pipeline thay vì gọi takeFaces.

kotlin
val faceSanityResult  = ekyc.checkFaceSanity(imageId = "<IMAGE_ID>")
val faceLivenessResult = ekyc.checkLiveness(imageIds = listOf("<IMAGE_ID>"))
val comparedResult     = ekyc.compareFaces(imageId1 = "<IMAGE_ID_1>", imageId2 = "<IMAGE_ID_2>")

compareFaces thực hiện so sánh 1:1 và độc lập với FaceAuthen — Xác minh Face Authen so khớp với hồ sơ đã đăng ký thay vào đó.

Bước tiếp theo ​

Developers