JAVA API

FaceCaptureJNI

Library object that manages all other Face Capture API classes.

Destroy

Description: Destroy the FaceCaptureJNI object. This will free the memory used by the native library. Calling destroy will invalidate this object and all objects created by it. Attempting to use any functions with this or any other invalidated object will result in the NULL_FACE_CAPTURE_OBJ error being thrown.

Function Definition:

void destroy()

Returns: None

Throws: None

Workflow Create

Description: Create a Workflow object using a workflow name. The Workflow object will become invalid if the FaceCaptureJNI used to create it is destroyed.

Function Definition:

IFaceCapture.IWorkflow workflowCreate(String workflowName)
WorkflowCreateParameters:

Parameter Name

Parameter Type

Description

workflowName

String

Name of the workflow to create

Returns: A new Workflow object.

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • UNKNOWN_WORKFLOW - The workflowName specified did not match any of the valid workflow names. Please see the Constants section for the list of valid names.

Get Camera List

Description: Get a list of available Camera objects. Use CameraPosition.FRONT to get all “selfie”/front facing cameras. Use CameraPosition.BACK to get all cameras on the back of the device.

Function Definition:

IFaceCapture.ICamera[] getCameraList(CameraPosition position)
getCameraListParameters:

Parameter Name

Parameter Type

Description

position

CameraPosition

Position of the cameras on the device

Returns: An array of Cameras for the camera position specified.

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_CAMERA_POSITION - The position value specified was not a valid CameraPosition.

Start Capture Session

Description: Start a capture session using the specified Workflow and Camera objects. While capturing, you cannot modify either object until the capture session ends. A capture session can end via a stopCaptureSession() call, if the capture session timeout expires, if there is a hardware issue, or if it captures successfully.

Function Definition:

void startCaptureSession(IFaceCapture.IWorkflow workflow, IFaceCapture.ICamera camera)
startCaptureSessionParameters:

Parameter Name

Parameter Type

Description

workflow

IWorkflow

Workflow containing settings for the capture session

camera

ICamera

Camera to be used in the capture session

Returns: None

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_WORKFLOW - The Workflow object has been invalidated by destroy() and cannot be used.

  • INVALID_CAMERA - The Camera object has been invalidated by destroy() and cannot be used.

  • NO_CAPTURE_PROFILE - The CAPTURE_PROFILE WorkflowProperty was not specified. A valid CAPTURE_PROFILE must be set.

  • INVALID_CAPTURE_PROFILE - The CAPTURE_PROFILE WorkflowProperty specified was not profile valid XML.

Stop Capture Session

Description: Stop the current capture session. If there is no capture session running, this is a no-op. The next CaptureState will contain the STOPPED CaptureSessionStatus indicating that the session has successfully stopped. The Frame will not be retrievable and the Feedback may be safely ignored from this CaptureState.

Function Definition:

void stopCaptureSession()

Returns: None

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • CANNOT_STOP_DURING_BRIGHTSCREEN - Stopping the session during brightscreen is not allowed. The session remains active and unchanged.

Get Capture Session State

Description: Blocking function that retrieves the capture session state object.

Function Definition:

ICaptureState getCaptureSessionState()

Returns: A new CaptureState object.

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCapture object has been invalidated by destroy() and cannot be used.

Get Server Package

Description: Get the JSON server package as a string value. The Workflow object used as a parameter must be the same one used to start a successful capture. (A capture has succeeded when it reaches the COMPLETED status.)

Function Definition:

String getServerPackage(IWorkflow workflow, PackageType packageType)
functionParameters:

Parameter Name

Parameter Type

Description

workflow

IWorkflow

Workflow containing settings for the capture session

packageType

PackageType

The requested package type.

Returns: The string representation of the JSON server package.

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_WORKFLOW - The Workflow object has been invalidated by destroy() and cannot be used.

  • INVALID_PACKAGE_TYPE - The PackageType specified was invalid.

  • CAPTURE_SESSION_UNAVAILABLE - The Workflow used does not contain server data for a successfully completed capture.

Get Encrypted Server Package

Description: Get the encrypted JSON server package as a string value. The Workflow object used as a parameter must be the same one used to start a successful capture. (A capture has succeeded when it reaches the COMPLETED status.)

Function Definition:

String getEncryptedServerPackage(EncryptionType encryptionType, String encryptionKey, IWorkflow workflow, PackageType packageType)
functionParameters:

Parameter Name

Parameter Type

Description

encryptionType

EncryptionType

Type of encryption

encryptionKey

String

String containing encryption key

workflowHandle

Workflow

Workflow object containing settings for the capture session

packageType

PackageType

Type of JSON request package

Returns: The string representation of the encrypted JSON server package.

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_WORKFLOW - The Workflow object has been invalidated by destroy() and cannot be used.

  • INVALID_PACKAGE_TYPE - The PackageType specified was invalid.

  • INVALID_ENCRYPTION_TYPE - The EncryptionType enumeration is not a valid type and cannot be used.

  • INVALID_ENCRYPTION_PUBLIC_KEY - The String containing the encryption key is not a valid key and cannot be used.

  • CAPTURE_SESSION_UNAVAILABLE - The Workflow used does not contain server data for a successfully completed capture.

Get Combined Server Package

Description: Get the JSON server package from multiple workflows as a string value. Each Workflow object used as a parameter must have started a successful capture. (A capture has succeeded when it reaches the COMPLETED status.) This should only be used when performing both passive and active liveness. There must be exactly one passive liveness workflow and at least one active liveness workflow specified.

Function Definition:

String getCombinedServerPackage(IWorkflow[] workflows, PackageType packageType)
functionParameters:

Parameter Name

Parameter Type

Description

workflows

IWorkflow[]

Workflows containing settings for the capture session

packageType

PackageType

The requested package type.

Returns: The string representation of the JSON server package.

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_WORKFLOW - The Workflow object has been invalidated by destroy() and cannot be used.

  • INVALID_PACKAGE_TYPE - The PackageType specified was invalid.

  • CAPTURE_SESSION_UNAVAILABLE - The Workflow used does not contain server data for a successfully completed capture.

  • INVALID_NUMBER_OF_WORKFLOWS - An invalid number of workflows have been provided.

Get Encrypted Combined Server Package

Description: Get the encrypted JSON server package from multiple workflows as a string value. Each Workflow object used as a parameter must have started a successful capture. (A capture has succeeded when it reaches the COMPLETED status.) This should only be used when performing both passive and active liveness. There must be exactly one passive liveness workflow and at least one active liveness workflow specified.

Function Definition:

String getEncryptedCombinedServerPackage(EncryptionType encryptionType, String encryptionKey, IWorkflow[] workflows, PackageType packageType)
functionParameters:

Parameter Name

Parameter Type

Description

encryptionType

EncryptionType

Type of encryption

encryptionKey

String

String containing encryption key

workflows

IWorkflow[]

Workflows containing settings for the capture session

packageType

PackageType

Type of JSON request package

Returns: The string representation of the encrypted JSON server package.

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_WORKFLOW - The Workflow object has been invalidated by destroy() and cannot be used.

  • INVALID_PACKAGE_TYPE - The PackageType specified was invalid.

  • INVALID_ENCRYPTION_TYPE - The EncryptionType enumeration is not a valid type and cannot be used.

  • INVALID_ENCRYPTION_PUBLIC_KEY - The String containing the encryption key is not a valid key and cannot be used.

  • CAPTURE_SESSION_UNAVAILABLE - The Workflow used does not contain server data for a successfully completed capture.

  • INVALID_NUMBER_OF_WORKFLOWS - An invalid number of workflows has been provided.

Get Captured Image

Description: Retrieves the stored capture image from the given Workflow. The Workflow object used as a parameter must be the same one used to start a successful capture. (A capture has succeeded when it reaches the COMPLETED status.)

Function Definition:

byte[] getCapturedImage( IFaceCapture.IWorkflow workflow )
functionParameters:

Parameter Name

Parameter Type

Description

workflow

IWorkflow

Specified workflow to retrieve a capture image from.

Returns: The capture image that was retrieved from the Workflow. The image is returned as a JPG.

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_WORKFLOW - The Workflow object has been invalidated by destroy() and cannot be used.

  • CAPTURE_SESSION_UNAVAILABLE - The Workflow used does not contain server data for a successfully completed capture.

Capture Session Get Capture Region

Description: Function that retrieves the region of the image where the face will be captured in the current Capture Session.

Function Definition:

Rectangle captureSessionGetCaptureRegion()

Returns: A rectangle defining the region where the face will be captured. The region is a rectangle is defined by a point (x,y) at the upper left corner along with a width and height.

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCapture object has been invalidated by destroy() and cannot be used.

  • CAPTURE_SESSION_UNAVAILABLE - There are no capture sessions currently running

Capture Session Enable Autocapture

Description: Enable or disable the autocapture for the capture session. If there is no capture session running, this is a no-op. If the capture session running was started by an active liveness workflow, this is a no-op.

Function Definition:

void captureSessionEnableAutocapture(boolean enableAutocapture)
functionParameters:

Parameter Name

Parameter Type

Description

enableAutocapture

Boolean

Boolean value on whether to enable autocapture

Returns: None

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCapture object has been invalidated by destroy() and cannot be used.

  • CAPTURE_SESSION_UNAVAILABLE - There are no capture sessions currently running

Get Version

Description: Get the Face Capture SDK version as an integer value.

Function Definition:

int getVersion()

Returns: The integer representation of the Face Capture SDK version in AABBCCDD format.

  • AA is the major version

  • BB is the minor version

  • CC is the bug fix version

  • DD is the build version

Throws: None

Get Version String

Description: Get the Face Capture SDK version as a string value.

Function Definition:

String getVersionString()

Returns: The string representation of the Face Capture SDK version.

Throws: None

CaptureState

The Capture State object provides a snap-shot of the capture session’s state when created. The data provided by a single Capture State will never change. A new Capture State must be retrieved in order to get a new status update from the capture session.

Destroy Capture State

Description: Destroys the CaptureState object. This will free the memory used by the native library. Calling destroy will invalidate this object. Attempting to use any functions with this invalidated CaptureState will result in the INVALID_CAPTURE_STATE error being thrown.

Function Definition:

void destroy()

Returns: None

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCapture object has been invalidated by destroy() and cannot be used.

  • INVALID_CAPTURE_STATE - The CaptureState object has been invalidated by destroy() and cannot be used.

Get Status

Description: Function that retrieves the capture session’s status from when the Capture State was created.

Function Definition:

CaptureSessionStatus getStatus()

Returns: The capture sessions status from when the Capture State was created. See the CaptureSessionStatus enumeration descriptions for details.

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_CAPTURE_STATE - The CaptureState object has been invalidated by destroy() and cannot be used.

Get Frame

Description: Function that retrieves the preview frame from when the Capture State was created.

Function Definition:

byte[] getFrame()

Returns: A byte array containing a preview frame from the capture session. The frame is in JPG format. The frame is either 480x640 in portrait mode or 640x480 in landscape mode.

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_CAPTURE_STATE - The CaptureState object has been invalidated by destroy() and cannot be used.

  • NO_FRAME_AVAILABLE - The capture session ended before the next frame was ready. There is no frame available for this Capture State.

Get Feedback

Description: Function that retrieves the subject feedback from when the Capture State was created.

Function Definition:

AutoCaptureFeedback getFeedback()

Returns: The most recent AutoCaptureFeedback update when the Capture State was created. See the AutoCaptureFeedback enumeration descriptions for more details.

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_CAPTURE_STATE - The CaptureState object has been invalidated by destroy() and cannot be used.

Workflow

Workflow object used to store capture session configurations.

Destroy

Description: Destroy the Workflow object. This will free the memory used by the native library. Calling destroy will invalidate this object. Attempting to use any functions with this invalidated Workflow will result in the NULL_FACE_CAPTURE_OBJ or INVALID_WORKFLOW error being thrown.

Function Definition:

void destroy()

Returns: None

Throws: None

Set Property String

Description: Set a string property value for the specified workflow property. Attempting to set a non-string property will result in a WORKFLOW_PROPERTY_TYPE_MISMATCH error being thrown. See the WorkflowProperty enumeration descriptions for more details.

Function Definition:

void setPropertyString(WorkflowProperty property, String value)
functionParameters:

Parameter Name

Parameter Type

Description

property

WorkflowProperty

Workflow property having its value set

value

String

New value for the specified workflow property

Returns: None

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_WORKFLOW - The Workflow object has been invalidated by destroy() and cannot be used.

  • INVALID_WORKFLOW_PROPERTY - The property value was not a valid WorkflowProperty.

  • WORKFLOW_PROPERTY_TYPE_MISMATCH - The property value specified does not accept a String value.

Set Property Double

Description: Set a double property value for the specified workflow property. Attempting to set a non-double property will result in a WORKFLOW_PROPERTY_TYPE_MISMATCH error being thrown. See the WorkflowProperty enumeration descriptions for more details.

Function Definition:

void setPropertyDouble(WorkflowProperty property, double value)
functionParameters:

Parameter Name

Parameter Type

Description

property

WorkflowProperty

Workflow property having its value set

value

double

New value for the specified workflow property

Returns: None

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_WORKFLOW - The Workflow object has been invalidated by destroy() and cannot be used.

  • INVALID_WORKFLOW_PROPERTY - The property value was not a valid WorkflowProperty.

  • WORKFLOW_PROPERTY_TYPE_MISMATCH - The property value specified does not accept a double value.

Camera

Camera object used to store capture session configurations.

Destroy

Description: Destroy the Camera object. This will free the memory used by the native library. Calling destroy will invalidate this object. Attempting to use any functions with an invalidated Camera will result in the NULL_FACE_CAPTURE_OBJ or INVALID_CAMERA error being thrown.

Function Definition:

void destroy()

Returns: None

Throws: None

Get Name

Description: Get the name of the Camera.

Function Definition:

String getName()

Returns: String containing the name of the Camera.

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_CAMERA - The Camera object has been invalidated by destroy() and cannot be used.

Set Orientation

Description: Set the orientation of the camera. This will affect how the capture session expects the camera to be oriented. See the CameraOrientation enumeration descriptions for more details.

Function Definition:

void setOrientation(CameraOrientation orientation)
functionParameters:

Parameter Name

Parameter Type

Description

orientation

CameraOrientation

New camera orientation for this camera to be used in capture sessions

Returns: None

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_CAMERA - The Camera object has been invalidated by destroy() and cannot be used.

  • INVALID_CAMERA_ORIENTATION - The orientation specified was not a valid CameraOrientation.

  • CAMERA_IN_USE - The Camera is currently in use in a capture session and cannot be modified.

Camera Get Resolutions

Description: Get the list of available resolutions this camera can use. IResolution contains the width and height of the camera image.

Function Definition:

IFaceCapture.IResolution[] getResolutions()

Returns: An array of camera resolutions IFaceCapture.IResolution[].

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_CAMERA - The Camera object has been invalidated by destroy() and cannot be used.

Camera Set Resolution

Description: Set the resolution the camera will use during the preview and image capture.

Function Definition:

setResolution(resolution)
functionParameters:

Parameter Name

Parameter Type

Description

resolution

IResolution

New resolution for this camera to be used during preview and image capture

Returns:

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_CAMERA - The Camera object has been invalidated by destroy() and cannot be used.

  • INVALID_RESOLUTION - The resolution specified was an invalid value.

Resolution

The Resolution object contains the camera preview or image capture width and height.

Resolution Width

Description: Get the value of the resolution width.

Function Definition:

width()

Returns: The width of the camera resolution.

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_RESOLUTION - The resolution specified was an invalid value.

Resolution Height

Description: Get the value of the resolution height.

Function Definition:

height()

Returns: The height of the camera resolution.

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.

  • INVALID_RESOLUTION - The resolution specified was an invalid value.

Destroy a Resolution

Description: Destroy a resolution object.

Function Definition:

destroy()

Returns:

Throws:
  • NULL_FACE_CAPTURE_OBJ - The FaceCaptureJNI object has been invalidated by destroy() and cannot be used.