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.
1. Kamera ekranını ekleyin
Bölüm başlığı “1. Kamera ekranını ekleyin”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(); // onResumefragment.stopCapture(); // onPause2. Görüntüyü doğrulayın
Bölüm başlığı “2. Görüntüyü doğrulayın”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().
Yakalama ayarları
Bölüm başlığı “Yakalama ayarları”| 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.