İçeriğe geç

Belge tarama

Belge, IDCardDetectionBaseFragment ile cihaz üzerinde algılanır ve kullanıcı belgeyi kameraya doğru tuttuğunda otomatik yakalanır. Yakalanan görüntüyü Prove ID’ye gönderip doğrularsınız.

IDCardDetectionBaseFragment fragment = IDCardDetectionBaseFragment.create(getApplicationContext());
IDCardDetectionConfiguration configuration = new IDCardDetectionConfiguration();
configuration.setCardTypeList(Collections.singletonList(CardType.NEW_ID));
configuration.setMessageToEncrypt(transactionId);
configuration.setEncryptDeviceId(true);
configuration.setDetectBothOrientation(true);
fragment.setConfiguration(configuration);
fragment.setListener(new OcrListener() {
@Override
public void cardDetected(Bitmap captured, CardType cardType) {
// Görüntüyü Prove ID'ye gönderin (aşağıda)
}
@Override
public void cardDetectionFailed(CardDetectionErrorsModel errors) {
// Kullanıcıyı yönlendirin: belgeyi yaklaştırın, ışığı artırın vb.
}
@Override
public void cardOcrCompleted(OcrResultModel ocrResultModel) {
// Yalnızca setDoOcr(true) ise çağrılır
}
});
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_camera, fragment)
.commit();

Ekran görünür olduğunda yakalamayı başlatın, arka plana geçtiğinde durdurun:

fragment.startCapture(); // onResume
fragment.stopCapture(); // onPause

Yakalanan görüntüyü Base64’e çevirip belge türüne uygun çağrıyla gönderin:

ByteArrayOutputStream out = new ByteArrayOutputStream();
captured.compress(Bitmap.CompressFormat.PNG, 100, out);
String base64 = Base64.encodeToString(out.toByteArray(), Base64.NO_WRAP);
ServerCall.verifyIDPhoto(new CheckIDModel(base64, transactionId),
new TechsignServiceListener<CheckIdReturnModel>() {
@Override
public void onSuccess(CheckIdReturnModel result) {
CapturedModel data = result.getCapturedData();
ControlEntryModel[] controls = result.getControlResults();
}
@Override
public void onFailure(Exception e) { }
});
Belge Çağrı
T.C. kimlik kartı — ön yüz ServerCall.verifyIDPhoto(new CheckIDModel(base64, tid), …)
T.C. kimlik kartı — arka yüz ServerCall.addSecondary(new AddSecondaryModel(base64, tid), …)
Eski T.C. kimlik kartı ServerCall.verifyOldId(new CheckIDModel(base64, tid), …)
Sürücü belgesi ServerCall.verifyDriverPhoto(new CheckIDModel(base64, tid), …)
Pasaport ServerCall.verifyPassportPhoto(new CheckIDModel(base64, tid), …)
Mavi kart ServerCall.verifyTurkishBlueCard(new CheckIDModel(base64, tid), …)
Yabancı kimlik belgesi ServerCall.verifyForeignId(new CheckIDModel(base64, tid), …)

CapturedModel belgeden okunan bilgileri içerir: getId(), getName(), getSname(), getNat(), getGend(), getSno(), getBdat(), getEdat().

Ayar Varsayılan Açıklama
setCardTypeList(List<CardType>) NEW_ID, NEW_ID_BACK, NEW_DRIVER, DRIVER_BACK Algılanacak belge türleri
setDetectBothOrientation(boolean) false Belgeyi iki yönde de algılar
setFocusScoreThresholdActive(boolean) false Hemen yakalamak yerine en net kareyi bekler
setMinFocusScore(float) — Netlik eşiği (örnek: 0.55f)
setEligibleFocusScoreCount(int) — Eşiği geçmesi gereken ardışık kare sayısı
setRePredictWithMargin(boolean) false Kırpmayı keskinleştirmek için yeniden tahmin
setRePredictionMargin(float) — Yeniden tahmin kenar payı (örnek: 0.1f)
setMaxHologramScoreForBlur(float) 1.0f Hologram parlamasını engeller; 1.0f kontrolü kapatır
setTurnIfReverse(boolean) false Ters tutulan belgeyi döndürür
setDoOcr(boolean) false Cihaz üzerinde OCR (ML Kit gerekir)
setMrzActive(boolean) false MRZ okuma (jmrtd gerekir)
setMessageToEncrypt(String) — Görüntüye işlenecek mesaj; işlem kimliğini verin
setEncryptDeviceId(boolean) — Cihaz kimliğini görüntüye işler

Görsel ayarlar için bkz. Özelleştirme.