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 tin | Mô tả |
|---|---|
| Gradle | 7.4 |
| minSdkVersion | 21 |
| targetSdkVersion | 33 |
| Kotlin | 1.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ường | Kiểu | Mô tả |
|---|---|---|
faces | List<Face>? | Các khuôn mặt đã chụp, mỗi khuôn mặt có image và gesture. |
sanityResult | List<EkycResponse<FaceSanityData>>? | Response sanity cho từng ảnh. |
livenessResult | EkycResponse<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ường | Kiểu | Mô tả |
|---|---|---|
EkycError.UserCanceledError | 40001 | Người dùng nhấn back. |
EkycError.TimeoutError | 40000 | Timeout. |
EkycError.CameraError | 40003 | Mở camera thất bại. |
EkycError.PermissionNotGranted | 40002 | Các quyền chưa được cấp. |
EkycError.QualityFailed | 60002 / 60003 | FACE_SANITY_FAILED hoặc FACE_LIVENESS_FAILED. |
EkycError.UnexpectedError | 50000 | Runtime 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).
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
- Tổng quan Mobile SDK — các khái niệm dùng chung giữa các nền tảng
- Đăng ký khuôn mặt — đăng ký các image ID đã chụp
- Xác minh Face Authen — xác thực bằng một lần chụp mới