Los dispositivos con Android que tienen tarjetas SIM y eSIMs usan los siguientes ID en las APIs de telefonía, incluidos TelephonyManager
y SubscriptionManager
:
- ID de suscripción: Es un ID único correspondiente a la suscripción de un dispositivo móvil.
- Índice o ID de la ranura lógica: índice único que hace referencia a una ranura SIM lógica. Los IDs de ranuras lógicas comienzan en 0 y aumentan según la cantidad de ranuras activas compatibles en un dispositivo. Por ejemplo, un dispositivo SIM dual generalmente tiene la ranura 0 y la 1. Si un dispositivo tiene varias ranuras físicas, pero solo admite una ranura activa, solo tendrá el ID de ranura lógica 0.
- Índice o ID de la ranura física: Es un índice único que hace referencia a una ranura SIM física. Los IDs de ranuras físicas comienzan en 0 y aumentan según la cantidad de ranuras físicas en el dispositivo. Esto difiere de la cantidad de ranuras lógicas que tiene un dispositivo, que corresponde a la cantidad de ranuras activas que puede usar. Por ejemplo, un dispositivo que cambia entre el modo de SIM doble y de SIM única siempre puede tener dos ranuras físicas, pero en el modo de una sola SIM, solo tendrá una ranura lógica.
- ID de tarjeta: Es un ID único que se usa para identificar una UiccCard.
En el diagrama anterior, se ilustra lo siguiente:
- El dispositivo tiene dos ranuras lógicas.
- En el espacio físico 0, hay una tarjeta UICC física con un perfil activo.
- En el espacio físico 2, hay un eUICC con un perfil activo.
- La ranura física 1 no está en uso actualmente.
En el diagrama anterior, se ilustra lo siguiente:
- El dispositivo tiene tres ranuras lógicas.
- En el espacio físico 0, hay una tarjeta UICC física con un perfil activo.
- En la ranura física 1, hay un eUICC que tiene dos perfiles descargados, ambos activos mediante MEP (varios perfiles habilitados).
Compatibilidad con el lector de la API de Open Mobile (OMAPI)
En Android 11 y versiones posteriores, la API de Open Mobile (OMAPI) admite la verificación de hardware compatible con eSE, SD y UICC en dispositivos con las siguientes marcas:
Usa estos valores con getSystemAvailableFeatures()
o hasSystemFeature()
para verificar la compatibilidad del dispositivo.