الحيوية (سيلفي بيومترية)
التقاط سيلفي بيومترية مع التحقق المدمج من الحيوية. يرشد SDK المستخدم حتى يتم الحصول على إطار صالح بيومترياً عبر SmartFrames، ويُعيد الصورة بتنسيق Base64 + JWT (JSON Web Token — حمولة موقَّعة تُرسَل إلى الواجهة الخلفية لاستدعاء REST API).
يستخدم هذا النوع من الالتقاط قدرة الحيوية. للاطلاع على نظرة عامة مفاهيمية حول آلية عمل الحيوية، راجع صفحة قدرة الحيوية.
يدير SDK جلسة الالتقاط الكاملة:
- يفتح الكاميرا مع طبقة SmartFrame.
- يرشد المستخدم إلى وضع وجهه داخل الإطار.
- يتحقق من الحيوية — تكتمل الجلسة فقط عند التحقق من الحضور الجسدي للمستخدم.
- يُعيد كائن
ResultCameraيحتوي علىbase64وencrypted(JWT).
الخطوة 1 — تنفيذ AcessoBioListener
يتعامل AcessoBioListener مع استدعاءات دورة حياة SDK. قم بتنفيذ الطرق الأربع الإلزامية:
| الطريقة | وقت استدعائها |
|---|---|
onErrorAcessoBio(errorBio) | حدث خطأ أثناء تشغيل SDK |
onUserClosedCameraManually() | أغلق المستخدم الكاميرا يدوياً |
onSystemClosedCameraTimeoutSession() | تم بلوغ حد مهلة الجلسة — انظر حدود الجلسة |
onSystemChangedTypeCameraTimeoutFaceInference() | تم بلوغ حد مهلة استنتاج الوجه — ينتقل إلى الالتقاط اليدوي — انظر حدود الجلسة |
- Kotlin
- Java
val callback = object : AcessoBioListener {
override fun onErrorAcessoBio(errorBio: ErrorBio?) { }
override fun onUserClosedCameraManually() { }
override fun onSystemClosedCameraTimeoutSession() { }
override fun onSystemChangedTypeCameraTimeoutFaceInference() { }
}
AcessoBioListener callback = new AcessoBioListener() {
@Override
public void onErrorAcessoBio(ErrorBio errorBio) { }
@Override
public void onUserClosedCameraManually() { }
@Override
public void onSystemClosedCameraTimeoutSession() { }
@Override
public void onSystemChangedTypeCameraTimeoutFaceInference() { }
};
الخطوة 2 — تنفيذ iAcessoBioSelfie
يتعامل iAcessoBioSelfie مع استدعاءات نتيجة التقاط السيلفي:
| الطريقة | الوصف |
|---|---|
onSuccessSelfie(result) | نجح الالتقاط — يُعيد ResultCamera مع base64 (معاينة) وencrypted (JWT للـ API) |
onErrorSelfie(errorBio) | فشل الالتقاط — يُعيد ErrorBio يحتوي على رمز الخطأ ووصفه |
يجب ألا تتجاوز الفترة الزمنية بين توليد encrypted وإرساله إلى الـ API 10 دقائق.
- Kotlin
- Java
val selfieListener = object : iAcessoBioSelfie {
override fun onSuccessSelfie(result: ResultCamera?) { }
override fun onErrorSelfie(errorBio: ErrorBio?) { }
}
iAcessoBioSelfie selfieListener = new iAcessoBioSelfie() {
@Override
public void onSuccessSelfie(ResultCamera result) { }
@Override
public void onErrorSelfie(ErrorBio errorBio) { }
};
الخطوة 3 — استدعاء prepareCamera
بعد تهيئة unicoCheckCamera وتنفيذ كلا المستمعَين، استدعِ prepareCamera مع تمرير إعداد SDK (كائن UnicoConfig الذي تم إنشاؤه في التهيئة) وSelfieCameraListener:
onCameraReady— الكاميرا جاهزة؛ استدعِopenمع تمريرselfieListenerمن الخطوة 2.onCameraFailed— فشل تجهيز الكاميرا؛ تعامل مع رسالة الخطأ.
- Kotlin
- Java
unicoCheckCamera
.prepareCamera(UnicoConfig(), object : SelfieCameraListener {
override fun onCameraReady(cameraOpener: UnicoCheckCameraOpener.Selfie?) {
cameraOpener?.open(selfieListener)
}
override fun onCameraFailed(message: String?) { }
})
unicoCheckCamera
.prepareCamera(new UnicoConfig(), new SelfieCameraListener() {
@Override
public void onCameraReady(UnicoCheckCameraOpener.Selfie cameraOpener) {
cameraOpener.open(selfieListener);
}
@Override
public void onCameraFailed(String message) { }
});
للاطلاع على المعالجة الكاملة للنتائج، راجع استقبال النتيجة.