Skip to main content
After creating the SDK instance, you need to register a callback to handle journey results. The callback should be registered in the onCreate method using sdk.registerCallback() before the Activity enters the Started lifecycle state. Ensure to call sdk.unregisterCallback() inside onDestroy() so that activity references are removed after it is destroyed.
Deprecated API Notice — The static SDK.registerCallback() method is deprecated. Use the instance method sdk.registerCallback() instead as shown below.
import androidx.activity.ComponentActivity
import ae.gov.icp.uaekyc.JourneyCallback
import ae.gov.icp.uaekyc.JourneyResult
import ae.gov.icp.uaekyc.UaeKycSdk

class MainActivity : ComponentActivity() {
    private var sdk: UaeKycSdk? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // Create SDK instance
        sdk = UaeKycSdk.create(applicationContext)

        // Register callback
        sdk?.registerCallback(this, object : JourneyCallback {
            override fun onResult(result: JourneyResult) {
                handleJourneyResult(result)
            }
        })
    }

    private fun handleJourneyResult(result: JourneyResult) {
        when (result) {
            is JourneyResult.Success -> {
                // Handle success
            }
            is JourneyResult.Error -> {
                // Handle error
            }
            else -> {
                // Handle other cases
            }
        }
    }

    override fun onDestroy() {
        super.onDestroy()
        sdk?.unregisterCallback()
        sdk?.close()
        sdk = null
    }
}

Deprecated API

Deprecated — The following static SDK methods are deprecated. Use the instance-based UaeKycSdk API instead.
import ae.gov.icp.uaekyc.JourneyCallback
import ae.gov.icp.uaekyc.JourneyResult
import ae.gov.icp.uaekyc.SDK

// DEPRECATED: Use UaeKycSdk instance methods instead
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // Register callback (deprecated)
        SDK.registerCallback(this, object : JourneyCallback {
             override fun onResult(result: JourneyResult) {
                 handleJourneyResult(result)
             }
        })
    }

    private fun handleJourneyResult(result: JourneyResult) {
        when (result) {
            is JourneyResult.Success -> {
                // Handle success
            }
            is JourneyResult.Error -> {
                // Handle error
            }
            else -> {
                // Handle other cases
            }
        }
    }

    override fun onDestroy() {
        super.onDestroy()
        SDK.unregisterCallback() // Unregister the callback (deprecated)
    }
}