Professional Documents
Culture Documents
Image Capture Mobile SDK For Android
Image Capture Mobile SDK For Android
Implementation Guide
For
Android
3.25
Customize background
color of id capture screen
and face detection screen
on detection.
Complete Operation 15
1. Document Purpose
The purpose of this document is to serve as a reference manual and configuration guide for the
IDmission Image Capture & Validation product. This manual includes details for Android devices
only.
This manual will illustrate how to embed the SDK into your host application, retrieve data from an
image and perform image validation.
2. Contact Us
If you have any questions regarding this guide, please contact our Customer Support Team at
implementation@idmission.com or at our 24X7 support line – 1-800-925-8041 X 1.
Note: If you are utilizing a device that has an Android Marshmallow (6.0) version, you will need to
acquire android.permissions.CAMERA, android.permission.WRITE_EXTERNAL_STORAGE and
android.permission.READ_EXTERNAL_STORAGE dynamically before initializing the SDK.
In Manifest tag,
xmlns:tools="http://schemas.android.com/tools"
In Application tag,
android:theme="@style/AppTheme"
tools:replace="android:icon,android:theme"
Accepted ID Types
Your IDmission Implementation Team will need to configure which ID types from which Countries
you wish to accept. Please contact them at implementation@idmission.com to communicate this
list.
4. Integration
The entire SDK project must be downloaded from the following URL:
http://appstore.idmission.com/Apps/ImageProcessingLib/Android/ImageProcessingSDK.zip
Dependency Description
idm-imgproc-#.#.##.#@aar Image Processing Library(Use latest released
(e.g idm-imgproc-1.1.99.15.aar) version)
opencv_#.#@aar OpenCV Library(Use latest released version)
(e.g opencv_3.2.aar)
card.io-#.#.#.aar CardIO Library(Use latest released version)
(e.g card.io-5.4.2.aar)
compile Support library for face-detection
'com.google.android.gms:play-
services-vision:9.2.0'
Check the Android Studio sample project to learn the most common use.
Initializing Labels
ImageProcessingSDK.initializeLabels(HashMap<String, String> englishLabelMap, HashMap<String,
String> spanishLabelMap);
"align_document_img_capture"
"subject_is_too_dark_img_capture"
"out_of_focus_img_capture"
"too_much_glare_img_capture"
"subject_is_too_dark_fc_detect"
"out_of_focus_fc_detect"
"move_camera_closer_to_your_face"
"camera_movement_fc_detect"
"keep_face_steady"
"smile_please"
"face_detected"
"light"
"focus"
"glare"
"smile"
Labels meaning:
ImageProcessingSDK.autoCapture(activityContext, imageType);
ImageProcessingSDK.autoCapture(activityContext,imagesTypes,capturePortrait,lightThreshold,minFo
cusThreshold,maxFocusThreshold,glarePercentage,enableCaptureButtonTime,maxImageSize,imageH
eight,imageWidth);
In case we capture front/back multiple times the old image will be deleted.
Note : Front image should be captured before capturing back image as back image(if present) will get
deleted after capturing front image.
detectedIdOuts
ideOutlineColor
: Color for
detected
screen
titleImageCapt Bitmap null Send a bitmap image to display on screen
ureBitmap
showIntruction boolean false true/fal To show instruction screen
se
imageresourcei Resource Default Custom instruction image
d file id instruct
ion
image
ImageProcessingSDK.setImageProcessingResponseListener(activityContext);
imageProcessingSDK.detectFace(activityContext, lightThreshold, focusThreshold,
detectionThreshold, launchFrontCamera);
Face Verification
To match face image, use the following call.
Auto Image Capture and Live Face Capture must be performed prior to this call. The captured image
data will be sent to server for processing.
Auto Image Capture and Live Face Capture must be performed prior to this call. The captured image
data will be sent to server for processing.
Customer Verification
To verify customer image, use the following call.(For verifying customer face image should be
capture first)
IDmission Proprietary and Confidential ©2017 21
ImageProcessingSDK.verifyCustomer(activityContext, biometricType);
Keyname:
FACE
additionalJSON JSONOb JSON Object may contain following optional elements
ject {
"Customer_Name": "",
"Unique_Employee_Number": "",
"Service_ID": "",
"Customer_Email": "",
"Customer_Type": "",
"Customer_Phone": "",
"Unique_Employee_Code": "",
"Unique_Customer_Number": "",
"Unique_Merchant_Number": "",
"Customer_Attribute": ""
}
Auto Image Capture and Live Face Capture must be performed prior to this call. The captured image
data will be sent to server for processing.
Auto Image Capture and Live Face Capture must be performed prior to this call. The captured image
data will be sent to server for processing.
Card Capture
To capture a card, use the following call.
ImageProcessingSDK.detectCard(activityContext);
ImageProcessingSDK.detectCard(activityContext, JSONObject additionalJSON);
ImageProcessingSDK.captureProofOfAddress(activityContext, capturePortrait);
;
ImageProcessingSDK.captureProofOfAddress(activityContext, capturePortrait,
lightThreshold,minFocusThreshold,maxFocusThreshold,glarePercentage,enableCaptureButtonTime,maxI
mageSize,imageHeight,imageWidth);
ImageProcessingSDK.captureProofOfAddress(activityContext, capturePortrait,
lightThreshold,minFocusThreshold,maxFocusThreshold,glarePercentage,enableCaptureButtonTime,maxI
mageSize,imageHeight,imageWidth, additionalJSON);
ImageProcessingSDK.captureBankStatement(activityContext, capturePortrait)
;
ImageProcessingSDK.captureBankStatement(activityContext, capturePortrait);
ImageProcessingSDK.captureBankStatement(activityContext, capturePortrait,
lightThreshold,minFocusThreshold,maxFocusThreshold,glarePercentage,enableCaptureButtonTime,maxI
mageSize,imageHeight,imageWidth);
ImageProcessingSDK.captureBirthCertificate(activityContext, capturePortrait)
;
ImageProcessingSDK.captureBirthCertificate(activityContext, capturePortrait);
ImageProcessingSDK.captureBirthCertificate(activityContext, capturePortrait,
lightThreshold,minFocusThreshold,maxFocusThreshold,glarePercentage,enableCaptureButtonTime,maxI
mageSize,imageHeight,imageWidth);
ImageProcessingSDK.captureBirthCertificate(activityContext, capturePortrait,
lightThreshold,minFocusThreshold,maxFocusThreshold,glarePercentage,enableCaptureButtonTime,maxI
mageSize,imageHeight,imageWidth, additionalJSON);
outsideFaceOut
lineColor : Color
outside face
outline
Capture 4F Fingerprint
To capture four fingerprint , use the following call.
Clear Fingerprint
To clear fingerprint, use the following call.
ImageProcessingSDK.clearFingerprint(FingerType fingerType)
Fingerprint Enrolment
To enrol fingerprint, use the following call.
IDmission Proprietary and Confidential ©2017 30
ImageProcessingSDK.enrollFingerprint(Activity activityContext, JSONObject additionalJSON)
Fingerprint Veification
To verify fingerprint, use the following call
Capture 4F Fingerprint or Capture Fingerprint must be performed prior to this call. The captured
fingerprint data will be sent to server for processing.
Video Recording
To complete operation, use the following call.
ImageProcessingSDK.startVideoRecording(Activity activityContext,int
videoRecordingTime,JSONObject additionalJSON,String textOnVideoScreen)
GPS Capture
To capture GPS, use the following call.
ImageProcessingSDK.completeOperation(activityContext)
Complete Operation
To complete operation, use the following call.
ImageProcessingSDK.completeOperation(activityContext);
ImageProcessingSDK.deleteData();
Set Image
API to allow client app to pass images in hashmap these images will be replaced in SDK and it can be
processed in SDK flow.
Capture QR/BarCode
Capture QR/BarCode by using the following call.
outsideFaceOut
lineColor : Color
outside face
outline
FieldName String Generate document according field Name
Process Image
public void onImageProcessingResultAvailable(Map<String, String> resultMap, Response response);
Please refer Automatic Image Capture callback table mentioned above for Response object
description.
Face Verification
public void onFaceMatchingResultAvailable(Map<String, String> resultMap, Response response);
Customer Verification
public void onCustomerVerificationResultAvailable(Map<String, String> resultMap, Response
response);
Card Capture
public void onCardDetectionResultAvailable (Map<String, String> resultMap, Response response);
Please refer Automatic Image Capture callback table mentioned above for Response object
description.
Please refer Automatic Image Capture callback table mentioned above for Response object
description.
Bank Statement:
public void onCaptureBankStatementResultAvailable(Map<String, String> resultMap, Response
response);
Please refer Automatic Image Capture callback table mentioned above for Response object
description.
Birth Certificate:
public void onCaptureBirthCertificateResultAvailable(Map<String, String> resultMap, Response
response);
Please refer Automatic Image Capture callback table mentioned above for Response object
description.
Capture 4F Fingerprint
public void onFourFingerCaptureFinished(Map<String,String > resultMap, Response response);
Capture Fingerprint
public void onFingerprintCaptureFinished(Map<String,String > resultMap, Response response);
Fingerprint Enrolment
public void onFingerprintEnrolmentFinished(Map<String,String > resultMap, Response response);
Fingerprint Verification
public void onFingerprintVerificationFinished(Map<String,String > resultMap, Response response);
Video Recording
public void onVideoRecordingFinished(Map<String,String > resultMap, Response response);
GPS Capture
public void onGPSCoordinateAvailable(Map<String, String> resultMap, Response response);
Complete Operation
public void onOperationResultAvailable(Map<String, String> resultMap, Response response);
Capture QR/BarCode
public void onScanBarcodeFinished(Map<String, String> resultMap, Response response);
The application using the SDK could also decide to handle this
directly and alert the user that the ID is invalid and to capture
new images.
Suspected If an ID has been detected as a sample (logic has The application using this SDK should prompt the user that
Sample been configured to recognize sample ID numbers, the ID they have provided is not valid and to capture image of
names, watermarks and other suspected sample a different ID.
data.)
Suspected If there is any photo editing software (Such as The application using this SDK should prompt the user that
Tampering Paint, Adobe) that has been detected, as well as the ID they have provided is not valid and to capture image of
any dates that have been falsely created or a different ID.
modified in the ID document image.
Template Not If the correct template cannot be matched against Manual Review in the Back Office. This is generally due to
Found those configured for the client, the system will not poor image quality so a manual check is required to see if it's
find a template to associate the image with for truly a valid and accepted ID type for the region / customer.
correct data extraction and validation.
The application using the SDK could also decide to handle this
directly and alert the user that the ID is not accepted and to
capture new images.
Under the age of If the date of birth (extracted from the The Date of Birth indicates that the user is under the Age of
18 barcode/MRZ) calculates the individual as under 18 and SDK can determine if that is already been indicated in
the age of 18. the application, if not SDK should prompt for correct ID.
MRZ Invalid If the MRZ Validation flag (Machine Readable Manual review of the ID in the Back office because the data
Zone) results in determining that the MRZ Data from the front does match the data extracted from the MRZ.
was not correct according to the standards. The Back Office user will need to be able to see the ID
Number field that was extracted from the front of the ID vs
what was extracted from the MRZ. They can manually
compare this to the image to see if it's actually a mismatch or
if it was an issue with OCR extraction.