Skip to content

Android Integration

denys.kramar edited this page Jun 25, 2025 · 1 revision

Android Integration

Setup

Add the PerchEye SDK to your Android project:

dependencies {
    implementation(files("libs/perch-eye-1.0.3-4.aar"))
}

Initialization

import com.percheye.android.PerchEye

class MainActivity : AppCompatActivity() {
    private lateinit var perchEye: PerchEye

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        // Initialize SDK
        perchEye = PerchEye(context)
        perchEye.init()
    }

    override fun onDestroy() {
        super.onDestroy()
        perchEye.destroy() // Always cleanup
    }
}

Face Detection

fun detectFace(bitmap: Bitmap): ImageResult {
    perchEye.openTransaction()
    val result = perchEye.addImage(bitmap)

    when (result) {
        ImageResult.SUCCESS -> Log.d("PerchEye", "Face detected")
        ImageResult.FACE_NOT_FOUND -> Log.d("PerchEye", "No face found")
        else -> Log.d("PerchEye", "Error: $result")
    }

    return result
}

Face Enrollment

fun enrollFace(bitmap: Bitmap): String? {
    perchEye.openTransaction()
    val result = perchEye.addImage(bitmap)

    if (result == ImageResult.SUCCESS) {
        val hash = perchEye.enroll()
        // Save hash for later verification
        return hash
    }

    return null
}

Face Verification

fun verifyFace(bitmap: Bitmap, storedHash: String): Float {
    perchEye.openTransaction()
    val result = perchEye.addImage(bitmap)

    if (result == ImageResult.SUCCESS) {
        val similarity = perchEye.verify(storedHash)
        return similarity // 0.8+ recommended threshold
    }

    return 0.0f
}

Basic Usage Example

// 1. Enroll a face
val enrolledHash = enrollFace(userPhoto)

// 2. Later, verify identity
val similarity = verifyFace(newPhoto, enrolledHash)
val isAuthenticated = similarity >= 0.8f
Clone this wiki locally