Android - Core Modülü¶
Core Modülü, diğer tüm modüllerin kullanımı için temel yapı ve işlevsellikleri sağlayan modüldür. Proje genelinde tekrar kullanılabilir bileşenleri ve altyapıyı barındırır. Diğer tüm modülleri kullanmadan önce Core Modülü projeye eklenmiş olmalıdır.
Projeye Eklenmesi¶
Maven erişimlerinin sağlandığından emin olduktan sonra aşağıdaki adımları izleyin. (Bkz. Başlarken)
1. libs.versions.toml dosyasına ekleyin:¶
wide760[versions] ... enqualify-plus = "x.x.x.x" [libraries] ... enqualify-plus-core = { group = "com.enqualify.plus", name = "core", version.ref = "enqualify-plus" }
2. build.gradle.kts dosyasına bağımlılığı ekleyin:¶
wide760implementation(libs.enqualify.plus.core)
3. Gradle Sync¶
"Sync Now" seçeneğine tıklayarak Gradle dosyalarını senkronize edin.
ℹ️ Kullanılacak versiyon numarası size özel olarak iletilir. Tüm modüller aynı versiyonu kullanmalıdır.
İzinler¶
SDK, ağ bağlantı tipiyle ilgili detaylı bilgi alabilmek (2G/3G/4.5G) için aşağıdaki iznin uygulama tarafından manuel olarak alınması gerekir:
wide760
⚠️ Bu izin SDK tarafından otomatik olarak talep edilmez. İzin verilmezse mobil veri tipi yalnızca
"Mobile"olarak görüntülenir.
Veri Modelleri¶
BaseModel¶
Doğrulama süreçlerinde kullanılan sunucu (backoffice) bağlantı adresini ve SSL sertifika bilgilerini içeren veri modelidir.
Signalling (Görüntülü Görüşme) ve MAPI sertifikaları hem dosya formatında hem de Base64 formatında verilebilir; iki formatın birlikte verilmesine gerek yoktur. Sertifika dosyaları Android projesi içinde res/raw klasörüne eklenmelidir ve aynı dosya adı bu modelde parametre olarak verilmelidir. Sertifika verilmezse SDK, SSL Pinning özelliği olmadan çalışır.
wide760data class BaseModel( var baseURL: String, // Zorunlu alan var signallingCertificateList: List
Özellikler¶
| Özellik | Tip | Zorunlu | Açıklama |
|---|---|---|---|
baseURL | String | ✅ | API doğrulama işlemleri için kullanılan temel sunucu adresi |
mobileUser | String | ✅ | Token işlemi sırasında kullanılan özel keyword |
signallingCertificateList | List<String?>? | — | Signalling (GG) sertifikalarının metin formatındaki dizisi |
mapiCertificateList | List<String?>? | — | MAPI sertifikalarının metin formatındaki dizisi |
signallingCertificateBase64List | List<String?>? | — | Signalling sertifikalarının Base64 formatındaki dizisi |
mapiCertificateBase64List | List<String?>? | — | MAPI sertifikalarının Base64 formatındaki dizisi |
countryCode | String | — | Okuma işlemi yapılacak kimliğin ülke kodu |
locale | String | — | Sesli yönlendirmeler ve metinlerin dili (varsayılan: "TR") |
useEmbeddedLocalSound | Boolean | — | Seslerin lokalden mi yoksa servisten mi kullanılacağını belirler (varsayılan: false) |
Kullanım Örneği¶
wide760val baseModel = BaseModel( signallingCertificateList = listOf("AI_CERT_1", "AI_CERT_2"), mapiCertificateList = listOf("MAPI_CERT_1", "MAPI_CERT_2"), signallingCertificateBase64List = listOf("QUlDRVJU...", "Q0VSVF8y..."), mapiCertificateBase64List = listOf("TU9SRSB...", "Q0VSVF8z..."), baseURL = "API_SERVER_URL", mobileUser = "mobile", countryCode = "TUR", locale = "TR", useEmbeddedLocalSound = false )
SessionModel¶
Bir çağrı oturumu sırasında kullanıcı ve kimlik bilgilerini içeren veri modelidir. Çağrı türü, kullanıcı detayları, kimlik bilgileri ve oturumla ilgili ek parametreleri içerir.
wide760data class SessionModel( var callType: String, // Zorunlu alan var reference: String, // Zorunlu alan var userName: String? = null, var surname: String? = null, var phone: String? = null, var email: String? = null, var identityType: String? = null, var identityNo: String? = null, var canAutoClose: Boolean = false, var isContinue: Boolean = false, // Kotlin'de 'continue' rezerve olduğu için isContinue var category: String? = null, var taxNumber: String? = null, var businessReference: String? = null, var handicapped: Boolean? = false )
Özellikler¶
| Özellik | Tip | Zorunlu | Açıklama |
|---|---|---|---|
callType | String | ✅ | Çağrı türünü belirten parametre (örn. "NewCustomer") |
reference | String | ✅ | Oturum için referans ID'si |
userName | String? | — | Kullanıcının adı |
surname | String? | — | Kullanıcının soyadı |
phone | String? | — | Kullanıcının telefon numarası |
email | String? | — | Kullanıcının e-posta adresi |
identityType | String? | — | Kimlik türü (örn. "I", "P") |
identityNo | String? | — | Kullanıcının kimlik numarası |
canAutoClose | Boolean | — | Oturumun otomatik kapanıp kapanmayacağını belirler (varsayılan: false) |
isContinue | Boolean | — | Oturumun devam eden bir işlem olup olmadığını belirler (varsayılan: false) |
category | String? | — | Oturumun ait olduğu kategori |
taxNumber | String? | — | Kullanıcıya ait vergi numarası |
businessReference | String? | — | İşletme ile ilgili referans bilgisi |
handicapped | Boolean? | — | Kullanıcının engelli olup olmadığını belirten bayrak (varsayılan: false) |
Kullanım Örneği¶
wide760val session = SessionModel( callType = "NewCustomer", reference = UUID.randomUUID().toString(), userName = "Enqura", surname = "Information", phone = "+905551234567", email = "[email protected]", identityType = "TC. Kimlik Kartı", identityNo = "12345678901", canAutoClose = true, isContinue = false, category = "category", taxNumber = "9876543210", businessReference = "COMPANY", handicapped = false )
CustomerIDDoc¶
OCR işlemi sonucunda kimlik belgesi üzerinden okunan verilerin depolandığı veri modelidir. Singleton yapıda çalışır; veriye CustomerIDDoc.getInstance() ile erişilir.
Detaylı bilgi için OCR Modülü sayfasına bakınız.
wide760class CustomerIDDoc { var identityType: String = "" var name: String = "" var surname: String = "" var identityNumber: String = "" var issuingState: String = "" var documentNumber: String = "" var dateOfBirthDay: String = "" var expiryDate: String = "" var nationality: String = "" var gender: String = "" var frontImage: Bitmap? = null var mrzImage: Bitmap? = null var holoImage: Bitmap? = null var face: Bitmap? = null var frontIdentityNumber: String? = null var frontExpiryDate: String? = null var frontBirthDate: String? = null var frontGender: String? = null var frontDocumentNumber: String? = null var optionalData1: String? = null var optionalData2: String? = null var mrzText: String? = null val visualItems: MutableMap
Özellikler¶
| Özellik | Tip | Açıklama |
|---|---|---|
identityType | String | Kimlik türü ("I" veya "P") |
name | String | Kimlik sahibinin adı |
surname | String | Kimlik sahibinin soyadı |
identityNumber | String | Kimlik numarası |
issuingState | String | Kimliğin verildiği ülke/bölge kodu |
documentNumber | String | Kimliğin belge numarası |
dateOfBirthDay | String | Kimlik sahibinin doğum tarihi |
expiryDate | String | Kimliğin son geçerlilik tarihi |
nationality | String | Kimlik sahibinin vatandaşlık ülkesi kodu |
gender | String | Cinsiyet (E/M, K/F vb.) |
frontImage | Bitmap? | Kimliğin ön yüzü görseli (MRZ önde olan kimliklerde boş gelir) |
mrzImage | Bitmap? | MRZ alanının görseli |
holoImage | Bitmap? | Hologram alanının görseli |
face | Bitmap? | Kimlik üzerindeki fotoğraf (18 yaş altı kimliklerde boş gelebilir) |
frontIdentityNumber | String? | Ön yüzden alınan kimlik numarası |
frontExpiryDate | String? | Ön yüzden alınan son geçerlilik tarihi |
frontBirthDate | String? | Ön yüzden alınan doğum tarihi |
frontGender | String? | Ön yüzden alınan cinsiyet bilgisi |
frontDocumentNumber | String? | Ön yüzden alınan belge numarası |
optionalData1 | String? | MRZ alanındaki opsiyonel veri 1 |
optionalData2 | String? | MRZ alanındaki opsiyonel veri 2 |
mrzText | String? | MRZ alanındaki tam metin |
visualItems | MutableMap<String, VisualItem> | Görsel analiz sonrası tespit edilen objelerin görselleri |
digitDocumentNumber | Char? | Belge numarasının MRZ doğrulama rakamı |
digitDateOfBirth | Char? | Doğum tarihinin MRZ doğrulama rakamı |
digitExpiryDate | Char? | Son geçerlilik tarihinin MRZ doğrulama rakamı |
sumDigit | Char? | MRZ alanının genel doğrulama rakamı |
Kullanım Örneği¶
wide760private lateinit var customerIdDoc: CustomerIDDoc override fun init() { customerIdDoc = CustomerIDDoc.getInstance() initPage() }
CustomerChip¶
NFC okuma işlemi sonucunda kimlik çipinden okunan verilerin depolandığı veri modelidir. BAC, CA, HT, AA ve CS gibi NFC güvenlik protokollerinin sonuçlarını da içerir. Singleton yapıda çalışır; veriye CustomerChip.getInstance() ile erişilir.
Detaylı bilgi için NFC Modülü sayfasına bakınız.
wide760class CustomerChip { var documentCode: DocumentCode = DocumentCode.I var identityType: String? = null var identityNo: String? = null var documentNo: String? = null var firstName: String? = null var lastName: String? = null var gender: String? = null var birthDate: String? = null var nationality: String? = null var expiryDate: String? = null var faceImage: Bitmap? = null var nameOfHolder: String? = null var surnameOfHolder: String? = null var placeOfBirth: String? = null var fullDateOfBirth: String? = null var BAC: NFCFeatureWithResult
Temel Özellikler¶
| Özellik | Tip | Açıklama |
|---|---|---|
documentCode | DocumentCode | Belge türünü belirten enum değeri |
identityType | String? | Kimlik belgesinin türü |
identityNo | String? | Kimlik belgesi numarası |
documentNo | String? | Resmi belge numarası |
firstName | String? | Belge sahibinin adı |
lastName | String? | Belge sahibinin soyadı |
gender | String? | Cinsiyet bilgisi |
birthDate | String? | Doğum tarihi |
nationality | String? | Vatandaşlık ülkesi |
expiryDate | String? | Belgenin son geçerlilik tarihi |
faceImage | Bitmap? | Çipten alınan biyometrik fotoğraf (Face modülüyle karşılaştırmada kullanılır) |
nameOfHolder | String? | Belge sahibinin yerel adı |
surnameOfHolder | String? | Belge sahibinin yerel soyadı |
placeOfBirth | String? | Doğum yeri |
fullDateOfBirth | String? | Tam doğum tarihi (gün, ay, yıl) |
NFC Güvenlik Protokolü Sonuçları¶
| Özellik | Tip | Açıklama |
|---|---|---|
BAC | NFCFeatureWithResult<Boolean> | Basic Access Control — belge okuma güvenlik protokolü sonucu (true: başarılı) |
CA | NFCFeatureWithResult<EACCAResult> | Chip Authentication — chip kimlik doğrulama sonucu |
HT | NFCFeatureWithResult<MutableMap<Int, HashMatchResult>?> | Hash Table — hash değeri doğrulama sonuçları |
AA | NFCFeatureWithResult<AAResult> | Active Authentication — asimetrik şifreleme ile kimlik doğrulama sonucu |
CS | NFCFeatureWithResult<Boolean> | Chip Signature — chip imzası geçerlilik sonucu (true: geçerli) |
Kullanım Örneği¶
wide760private lateinit var customerChip: CustomerChip override fun init() { customerChip = CustomerChip.getInstance() initPage() }
CustomerFace¶
Yüz tanıma ve canlılık kontrolü işlemi sonucunda elde edilen verilerin depolandığı veri modelidir. Singleton yapıda çalışır; veriye CustomerFace.getInstance() ile erişilir.
Detaylı bilgi için Face Modülü sayfasına bakınız.
Temel Özellikler¶
| Özellik | Tip | Açıklama |
|---|---|---|
faceDetectedImage | Bitmap? | Kamerada algılanan yüzün görüntüsü |
smilingDetectedImage | Bitmap? | Gülümseme algılandığında elde edilen görüntü |
possibilityOfSmiling | Float? | Gülümseme olasılığı (0–1 arası) |
faceLeftDetectedImage | Bitmap? | Baş sola döndüğünde elde edilen görüntü |
faceRightDetectedImage | Bitmap? | Baş sağa döndüğünde elde edilen görüntü |
faceUpDetectedImage | Bitmap? | Baş yukarıya kaldırıldığında elde edilen görüntü |
eyeCloseDetectedImage | Bitmap? | Gözler kapalı olduğunda elde edilen görüntü |
antiSpoofing | Double? | Sahtecilik tespiti skoru |
antiSpoofingValidityLevel | Int? | Anti-spoofing geçerlilik seviyesi |
idDocConfidence | Int? | Kimlik fotoğrafı ile yüz karşılaştırma güven derecesi |
idDocDistance | Double? | Kimlik belgesi ile yüz arasındaki mesafe |
chipConfidence | Int? | NFC çipi biyometriği ile yüz karşılaştırma güven derecesi |
chipDistance | Double? | NFC çipi ile yüz arasındaki mesafe |
IntegrationModel¶
addIntegration fonksiyonu aracılığıyla entegrasyon aşamasında SDK üzerinden veri göndermek için kullanılan veri modelidir.
wide760data class IntegrationModel( val phone: String? = null, val email: String? = null, val formUrl: String? = null, val idRegistration: IDRegistration? = null, val addressRegistration: AddressRegistration? = null, val data: String )
Proguard Kuralları¶
Release paketlerinde (minifyEnabled = true, debuggable = false) Core SDK'nın doğru çalışabilmesi için proguard-rules.pro dosyasına aşağıdaki kuralları ekleyin:
wide760-keep interface com.enqualify.plus.core.CoreCallbacks { *; } -keep public class com.enqualify.plus.core.** { *; } -keepclassmembers class * { public static
Sıradaki Adımlar¶
Core Modülü kurulumunu tamamladıktan sonra ihtiyacınıza göre aşağıdaki modüllere geçebilirsiniz:
- OCR Modülü — Kimlik belgelerinden optik karakter tanıma
- NFC Modülü — Kimlik çiplerinden NFC okuma
- Face Modülü — Yüz tanıma ve canlılık kontrolü
- VideoCall Modülü — Görüntülü görüşme entegrasyonu