usar tener telefonicos tarjeta sim movil mis guardar dual doble desactivada contactos como chips chip celular administracion activar android telephonymanager

tener - ¿Cómo puedo verificar si la tarjeta Sim está disponible en un dispositivo Android?



tarjeta sim desactivada android (3)

Encontré otra manera de hacer esto.

public static boolean isSimStateReadyorNotReady() { int simSlotCount = sSlotCount; String simStates = SystemProperties.get("gsm.sim.state", ""); if (simStates != null) { String[] slotState = simStates.split(","); int simSlot = 0; while (simSlot < simSlotCount && slotState.length > simSlot) { String simSlotState = slotState[simSlot]; Log.d("MultiSimUtils", "isSimStateReadyorNotReady() : simSlot = " + simSlot + ", simState = " + simSlotState); if (simSlotState.equalsIgnoreCase("READY") || simSlotState.equalsIgnoreCase("NOT_READY")) { return true; } simSlot++; } } return false; }

Necesito ayuda para verificar si un dispositivo tiene una tarjeta sim programáticamente. Por favor proporcione código de ejemplo.


Puedes consultar con el siguiente código:

public static boolean isSimSupport(Context context) { TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); //gets the current TelephonyManager return !(tm.getSimState() == TelephonyManager.SIM_STATE_ABSENT); }


Utilice el administrador de telefonía.

http://developer.android.com/reference/android/telephony/TelephonyManager.html

Como señala Falmarri, usted querrá usar getPhoneType PRIMERO de todo, para ver si está tratando con un teléfono GSM. Si es así, entonces también puede obtener el estado de SIM.

TelephonyManager telMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); int simState = telMgr.getSimState(); switch (simState) { case TelephonyManager.SIM_STATE_ABSENT: // do something break; case TelephonyManager.SIM_STATE_NETWORK_LOCKED: // do something break; case TelephonyManager.SIM_STATE_PIN_REQUIRED: // do something break; case TelephonyManager.SIM_STATE_PUK_REQUIRED: // do something break; case TelephonyManager.SIM_STATE_READY: // do something break; case TelephonyManager.SIM_STATE_UNKNOWN: // do something break; }

EDITAR:

A partir de la API 26 ( Android O Preview ), puede consultar las ranuras de sims individuales de getSimState(int slotIndex) usando getSimState(int slotIndex) es decir:

int simStateMain = telMgr.getSimState(0); int simStateSecond = telMgr.getSimState(1);

documentación oficial

Si está desarrollando con una API más antigua, puede usar TelephonyManager''s

String getDeviceId (int slotIndex) //returns null if device ID is not available. ie. query slotIndex 1 in a single sim device int devIdSecond = telMgr.getDeviceId(1); //if(devIdSecond == null) // no second sim slot available

el cual fue agregado en la API 23 - docs here