Detect eSIMs and SIM cards
Stay organized with collections
Save and categorize content based on your preferences.
Android-powered devices with SIM cards and eSIMs use the following IDs in the telephony
APIs, including
TelephonyManager
and
SubscriptionManager
:
- Subscription ID: unique ID for a mobile subscription.
- Logical slot index or ID: unique index referring to a logical SIM slot.
Logical slot IDs start at 0 and go up depending on the number of
supported active slots on a device. For example, a dual-SIM device typically
has slot 0 and slot 1. If a device has multiple physical slots but only
supports one active slot, it will have only the logical slot ID 0.
- Physical slot index or ID: unique index referring to a physical SIM slot.
Physical slot IDs start at 0 and go up depending on the number of physical
slots on the device. This differs from the number of logical slots a device
has, which corresponds to the number of active slots a device is capable of
using. For example, a device which switches between dual-SIM and single-SIM
mode may always have two physical slots, but in single-SIM mode it will have
only one logical slot.
- Card ID: unique ID used to identify a UiccCard.

In the preceding diagram:
- The device has two logical slots.
- In physical slot 0 there is a physical UICC card with an active profile.
- In physical slot 2 is an eUICC with an active profile.
- Physical slot 1 is not currently in use.

In the preceding diagram:
- The device has three logical slots.
- In physical slot 0 there is a physical UICC card with an active profile.
- In physical slot 1 is an eUICC that has two downloaded profiles, both active using MEP (Multiple Enabled Profiles).
Open Mobile API (OMAPI) reader support
On Android 11 and higher, Open Mobile API (OMAPI) supports checking for eSE, SD,
and UICC support hardware on devices with the following flags:
Use these values with
getSystemAvailableFeatures()
or
hasSystemFeature()
to check for device support.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2023-10-26 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2023-10-26 UTC."],[],[],null,["# Detect eSIMs and SIM cards\n\nAndroid-powered devices with SIM cards and eSIMs use the following IDs in the telephony\nAPIs, including\n[`TelephonyManager`](/reference/android/telephony/TelephonyManager) and\n[`SubscriptionManager`](/reference/android/telephony/SubscriptionManager):\n\n- Subscription ID: unique ID for a mobile subscription.\n- Logical slot index or ID: unique index referring to a logical SIM slot. Logical slot IDs start at 0 and go up depending on the number of supported active slots on a device. For example, a dual-SIM device typically has slot 0 and slot 1. If a device has multiple physical slots but only supports one active slot, it will have only the logical slot ID 0.\n- Physical slot index or ID: unique index referring to a physical SIM slot. Physical slot IDs start at 0 and go up depending on the number of physical slots on the device. This differs from the number of logical slots a device has, which corresponds to the number of active slots a device is capable of using. For example, a device which switches between dual-SIM and single-SIM mode may always have two physical slots, but in single-SIM mode it will have only one logical slot.\n- Card ID: unique ID used to identify a UiccCard.\n\nIn the preceding diagram:\n\n- The device has two logical slots.\n- In physical slot 0 there is a physical UICC card with an active profile.\n- In physical slot 2 is an eUICC with an active profile.\n- Physical slot 1 is not currently in use.\n\nIn the preceding diagram:\n\n- The device has three logical slots.\n- In physical slot 0 there is a physical UICC card with an active profile.\n- In physical slot 1 is an eUICC that has two downloaded profiles, both active using MEP (Multiple Enabled Profiles).\n\nOpen Mobile API (OMAPI) reader support\n--------------------------------------\n\nOn Android 11 and higher, Open Mobile API (OMAPI) supports checking for eSE, SD,\nand UICC support hardware on devices with the following flags:\n\n- [`FEATURE_SE_OMAPI_ESE`](/reference/android/content/pm/PackageManager#FEATURE_SE_OMAPI_ESE)\n- [`FEATURE_SE_OMAPI_SD`](/reference/android/content/pm/PackageManager#FEATURE_SE_OMAPI_SD)\n- [`FEATURE_SE_OMAPI_UICC`](/reference/android/content/pm/PackageManager#FEATURE_SE_OMAPI_UICC)\n\nUse these values with\n[`getSystemAvailableFeatures()`](/reference/android/content/pm/PackageManager#getSystemAvailableFeatures())\nor\n[`hasSystemFeature()`](/reference/android/content/pm/PackageManager#hasSystemFeature(java.lang.String))\nto check for device support."]]