> For the complete documentation index, see [llms.txt](https://docs.accurascan.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.accurascan.com/solutions/face-match/android/setup-accura-face-match.md).

# Setup Accura Face Match

Require `accuraface.license` to implement AccuraFaceMatch SDK in to your app

## **Add following code in Manifest.**

```
<manifest>
    ...
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
</manifest>
```

***

## **Open auto capture camera**

```
FMCameraScreenCustomization cameraScreenCustomization = new FMCameraScreenCustomization();

cameraScreenCustomization.backGroundColor = getResources().getColor(R.color.fm_camera_Background);
cameraScreenCustomization.closeIconColor = getResources().getColor(R.color.fm_camera_CloseIcon);
cameraScreenCustomization.feedbackBackGroundColor = getResources().getColor(R.color.fm_camera_feedbackBg);
cameraScreenCustomization.feedbackTextColor = getResources().getColor(R.color.fm_camera_feedbackText);
cameraScreenCustomization.feedbackTextSize = 18;
cameraScreenCustomization.feedBackframeMessage = "Frame Your Face";
cameraScreenCustomization.feedBackAwayMessage = "Move Phone Away";
cameraScreenCustomization.feedBackOpenEyesMessage = "Keep Your Eyes Open";
cameraScreenCustomization.feedBackCloserMessage = "Move Phone Closer";
cameraScreenCustomization.feedBackCenterMessage = "Move Phone Center";
cameraScreenCustomization.feedBackMultipleFaceMessage = "Multiple Face Detected";
cameraScreenCustomization.feedBackHeadStraightMessage = "Keep Your Head Straight";
cameraScreenCustomization.feedBackBlurFaceMessage = "Blur Detected Over Face";
cameraScreenCustomization.feedBackGlareFaceMessage = "Glare Detected";
cameraScreenCustomization.feedBackLowLightMessage = "Low light detected";
cameraScreenCustomization.feedbackDialogMessage = "Loading...";
cameraScreenCustomization.feedBackProcessingMessage = "Processing...";
cameraScreenCustomization.showlogo = 0; // Set 0 to hide logo from selfie camera screen
cameraScreenCustomization.logoIcon = R.drawable.your_logo; // To set your custom logo
    
// FMCameraScreenCustomization.CAMERA_FACING_FRONT to set selfie camera       
// FMCameraScreenCustomization.CAMERA_FACING_BACK to set rear camera
cameraScreenCustomization.facing = FMCameraScreenCustomization.CAMERA_FACING_FRONT;

    
// 0 for full dark face and 100 for full bright face or set it -1 to remove low light filter
cameraScreenCustomization.setLowLightTolerence(-1/*lowLightTolerence*/);

// 0 for clean face and 100 for Blurry face or set it -1 to remove blur filter
cameraScreenCustomization.setBlurPercentage(80/*blurPercentage*/); // To allow blur on face
                                                
// Set min and max percentage for glare or set it -1 to remove glare filter
cameraScreenCustomization.setGlarePercentage(6/*glareMinPercentage*/, 99/*glareMaxPercentage*/);

Intent intent = SelfieFMCameraActivity.getCustomIntent(this, cameraScreenCustomization);
startActivityForResult(intent, ACCURA_FACEMATCH_CAMERA);

// Handle accura fm camera result.
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        if (requestCode == ACCURA_LIVENESS_CAMERA && data != null) {
            AccuraFMCameraModel result = data.getParcelableExtra("Accura.fm");
            if (result == null) {
                return;
            }
            if (result.getStatus().equals("1")) {
                // result bitmap
                Bitmap bitmap = result.getFaceBiometrics();
                Toast.makeText(this, "Success", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(this, "Failed" + result.getStatus(), Toast.LENGTH_SHORT).show();
            }
        }
    }
}
```

***

## **Implement face match code manually to your activity.**

```
Important Grant Camera and storage Permission.

must have to implements FaceCallback to your activity
ImageView image1,image2;

// Initialized facehelper in onCreate.
FaceHelper helper = new FaceHelper(this);
faceHelper.setFaceMatchCallBack(this);
faceHelper.initEngine();

TextView tvFaceMatch = findViewById(R.id.tvFM);
tvFaceMatch.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        ********** For faceMatch
        
        // To pass two image uri for facematch.
        // @params uri1 is for input image
        // @params uri2 is for match image
        
        helper.getFaceMatchScore(uri1, uri2);


        // also use some other method for face match
        // Make sure to call "helper.setInputImage" first, followed by "helper.setMatchImage".
        // helper.setInputImage(uri1);
        // helper.setMatchImage(uri2);
    
    }
});
// Override methods for FaceCallback

@Override
public void onFaceMatch(float score) {
    // get face match score
    System.out.println("Match Score : " + ss + " %");
}

@Override
public void onSetInputImage(Bitmap src1) {
    // set Input image to your view
    image1.setImageBitmap(src1);
}

@Override
public void onSetMatchImage(Bitmap src2) {
    // set Match image to your view
    image2.setImageBitmap(src2);
}

@Override
public void onInitEngine(int ret) {
}

@Override
public void onLeftDetect(FaceDetectionResult faceResult) {
    if (faceResult != null) {
        // do some code
    }
}

@Override
public void onRightDetect(FaceDetectionResult faceResult) {
    if (faceResult != null) {
        // do some code
    }
}

@Override
public void onExtractInit(int ret) {
}

And take a look ActivityFaceMatch.java for full working example.
```

***

### **Optional: Load License File Dynamically**

If you prefer to place the license file dynamically, you can use the following method. This allows you to specify the license file path at runtime. For a demo of dynamic licensing, please refer to the **dynamic\_license\_demo** branch.

```
faceHelper.initEngine(faceLicensePath);

```

***

### **Simple Usage to face match in your app.**

```
// Just add FaceMatchActivity to your manifest:
<activity android:name="com.accurascan.facematch.ui.FaceMatchActivity"/>

// Start Intent to open activity
Intent intent = new Intent(this, FaceMatchActivity.class);
startActivity(intent);
```

***
