Skip to main content

Precondition Checks

MTP SDK runs Precondition checks when various SDK methods are called. If Precondition check fails, a specific MeaErrorCode is returned.

MeaTokenPlatform.initialize() precondition checks:

  1. Rooted device precondition check. Rooted devices are not eligible to use MTP SDK. Throws a Rooted device error.
  2. Version rollback check. Older MTP SDK version is not allowed to be installed over a later MTP SDK version. Returns MeaErrorCode.VERSION_ROLLBACK.
  3. Debugger check. Debugging is not allowed for MTP SDK prod config. Returns MeaErrorCode.DEBUGGER_ATTACHED.
  4. Architecture check. Device must be ARM or AARCH64. Returns MeaErrorCode.ABI_NOT_SUPPORTED.
  5. OS version check. Android OS version must be 6.0 and later for Locally-verified CDCVM, or 4.4 and later for Mobile PIN. Returns MeaErrorCode.OS_VERSION_NOT_SUPPORTED.
  6. SDK config check. Production APK release build using MTP SDK must integrate MTP SDK prod release configuration. Returns MeaErrorCode.SDK_DEBUG_IN_APP_RELEASE_NOT_ALLOWED.

MeaTokenPlatform.register() precondition checks:

  1. Register check. MTP SDK must be registered only once. Returns MeaErrorCode.ALREADY_REGISTERED.
  2. Debugger check. Debugging is not allowed for MTP SDK prod config. Returns MeaErrorCode.DEBUGGER_ATTACHED.
  3. Network connection check. Device must be connected to the Internet for register() call. Returns MeaErrorCode.NO_NETWORK_CONNECTION.
  4. Google Play services check. Device must have Google Play services available for push notification functionality. Returns MeaErrorCode.GOOGLE_PLAY_SERVICES_NOT_AVAILABLE.

MeaTokenPlatform.initializeDigitization() precondition checks:

  1. Register check. MTP SDK must be registered with register() before initializeDigitization() can succeed. Returns MeaErrorCode.NOT_REGISTERED.
  2. Debugger check. Debugging is not allowed for MTP SDK prod config. Returns MeaErrorCode.DEBUGGER_ATTACHED.
  3. Network connection check. Device must be connected to the Internet for register() call. Returns MeaErrorCode.NO_NETWORK_CONNECTION.
  4. Google Play services check. Device must have Google Play services available for push notification functionality. Returns MeaErrorCode.GOOGLE_PLAY_SERVICES_NOT_AVAILABLE.

MeaTokenPlatform.completeDigitization() precondition checks:

  1. Register check. MTP SDK must be registered with register() before completeDigitization() can succeed. Returns MeaErrorCode.NOT_REGISTERED.
  2. Debugger check. Debugging is not allowed for MTP SDK prod config. Returns MeaErrorCode.DEBUGGER_ATTACHED.
  3. Network connection check. Device must be connected to the Internet for register() call. Returns MeaErrorCode.NO_NETWORK_CONNECTION.
  4. Google Play services check. Device must have Google Play services available for push notification functionality. Returns MeaErrorCode.GOOGLE_PLAY_SERVICES_NOT_AVAILABLE.

MeaCard.setAsDefaultForContactlessPayments() precondition checks:

  1. Register check. MTP SDK must be registered with register() before setAsDefaultForContactlessPayments() can succeed. Returns MeaErrorCode.NOT_REGISTERED.
  2. Debugger check. Debugging is not allowed for MTP SDK prod config. Returns MeaErrorCode.DEBUGGER_ATTACHED.

MeaCard.selectForContactlessPayment() precondition checks:

  1. Register check. MTP SDK must be registered with register() before setAsDefaultForContactlessPayments() can succeed. Returns MeaErrorCode.NOT_REGISTERED.
  2. Debugger check. Debugging is not allowed for MTP SDK prod config. Returns MeaErrorCode.DEBUGGER_ATTACHED.
  3. NFC check. Device must have NFC functionality available and enabled. Returns MeaErrorCode.NFC_NOT_AVAILABLE.
  4. HCE check. Device must have HCE functionality available and enabled. Returns MeaErrorCode.HCE_NOT_AVAILABLE.
  5. Default payment app check. Application must be selected as default application for payments. Returns MeaErrorCode.APPLICATION_NOT_DEFAULT_FOR_CONTACTLESS.