MPoC SDK
API Reference
Init SDK

Init SDK

Overview

The SDK has to be initialized before use. First initialization will trigger SDK to register online. Therefore, you have to make sure your device being connected before first initialization.

Methods

MPoCAPI.initSdk

This is a async function including callback. You can use suspendCoroutine to convert it to a "sync" call mode.

Initializes the MPoC SDK. This method should be called each time the application starts up (for example, in the Application's onCreate). First call will trigger SDK to do online registration.

Parameters

NameTypeConditionDescription
licenseStringRequiredThe name of the license file.
contextApplicationRequiredThe application instance
autoRegisterBooleanOptionaltrue makes SDK register automatically.
false disable online registration. only initialize the sdk
callback(MPoCResult<SdkInitResult>) -> UnitRequiredThe callback to handle the result of the SDK initialization.

Returns

Return TypeDescription
MPoCResult<SdkInitResult>A wrapped result containing the SDKInitResult.
data class SdkInitResult(
    val isRegistered: Boolean ,// indicate if it is registered
    val sdkId: String, // sdkid
    val sdkBuildModel: String, // sdk build model
    val sdkVersion: String, // sdk version number
    val licenseId: String, // license id
    val customerId: String, // customer id
)

Usage

suspend fun registerSdk() = suspendCoroutine { continuation ->
  MPoCAPI.initSdk(licenseName,this.application) {
    when (it) {
      is MPoCResult.Failure -> {
        Log.d(
          "TAG",
          "sdk registration fails ${it.code} ${it.message} context=${it.contextual}"
        )
        continuation.resumeWith(Result.failure<SdkInitResult>(Exception(it.contextual)))
 
      }
 
      is MPoCResult.Success -> {
        Log.d("TAG", "register success $it")
        continuation.resumeWith(Result.success<SdkInitResult>(it.data))
      }
 
    }
  }
}
// Success(value=SdkInitResult(isRegistered=true,sdkVersion=1.10.105.12.17,
// sdkId=4411be126c0c91b7, sdkBuildModel="DEBUG", licenseId="1234567890", customerId="1234567890"))