🚨 Deprecated Documentation 🚨 Please note that this documentation is no longer being updated.
Identification is used when you want to identify a beneficiary from a group of people using their biometrics. During an identification, Simprints ID will collect biometrics from a beneficiary, search through a group of people and return a list of the most likely matches to the custom Android application.
To identify a beneficiary using Simprints ID, you will need to build an Intent using SimHelper:
Step 1: Create an identification Intent to Simprints ID:
Intent intent = simHelper.identify("Module ID"); // The module to search in
startActivityForResult(intent, 1); // 1 is your request code for the callback
After collecting a beneficiary's biometrics and searching across a database, you will want to extract the list of top matches. The user will then be able to select the correct beneficiary from the list of top matches. To add a check on whether a user has completed a Simprints flow, use the Biometrics Complete check boolean. To find out more about Biometrics Complete check, click here.
Step 2: To extract the list of top matches, scores, and tiers, add the snippet below:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Here we check the request + result code
// We return a list of identification objects from the Intent data. The list is sorted by
//Confidence score (in descending order, with the highest score at the top). For each object you can
//access the GUID, Confidence and Tier.
ArrayList<Identification> identifications =
data.getParcelableArrayListExtra(Constants.SIMPRINTS_IDENTIFICATIONS);
for (int i = 0; i < identifications.size(); i++) {
identifications.get(i).getGuid();
identifications.get(i).getConfidence();
identifications.get(i).getTier();
Boolean check = data.getBooleanExtra(Constants.SIMPRINTS_BIOMETRICS_COMPLETE_CHECK);
String sessionId = data.getStringExtra(Constants.SIMPRINTS_SESSION_ID);
}
*You must add logic in your application, to only allow a user to continue in their workflow if biometricsCompleteCheck = True.
Once you have parsed the results, you can then decide how many results to display to the user. Since biometric algorithms are comparing biometric data from two different points in time, the results should be displayed in rank order. We often recommend that the app displays between 3-5 results. In some of our projects, they will also filter out the lowest confidence Tier (Tier 5) and have a condition of 'If Tier 1-4, display up to 3 results.' This is up to the partner and often includes discussing with a Simprints Project Manager.
The user will now be able to select the correct beneficiary from the list of top matches.
To assess biometrics accuracy performance, Simprints ID relies on an Identification Outcome Callout from the custom Android application following an Identification. In this callout, the GUID the user selected from the list of top matches is sent to Simprints ID. This will allow Simprints to improve accuracy for your project over time.
You can integrate Identification Outcome Callout in the background following the user selecting the correct beneficiary:
Step 4: Retrieve the Session ID from the returned identification Intent data:
String sessionId = data.getStringExtra(Constants.SIMPRINTS_SESSION_ID);
During an Identification Outcome Callout, the session ID will provide a link between the GUID sent to Simprints ID and from which identification session it is linked to.
Step 5: Create an Identification Outcome Callout Intent using SimHelper to pass the Session ID and selected GUID to Simprints:
Intent intent = simHelper.confirmIdentity(context, sessionId, selectedGuid);
startActivityForResult(intent, 1); // 1 is your request code for the callback
Important Note: It is possible, and useful, to pass back a none_selected selectedGuid. This tells Simprints ID that the correct person was not in the return list.
If you plan to use Identification+, outlined in detail in the Product page here, then if all of the return results do not display the correct beneficiary, then the frontline worker will have the option to enrol that beneficiary without having to re-take the fingerprints. To do this, the frontline would select something in the UI to indicate 'Enrol this person' and then your application will respond with Register Last Biometrics.