Necesito ayuda para verificar si un dispositivo tiene una tarjeta SIM programaticamente. Proporcione un código de muestra.¿Cómo puedo verificar si la tarjeta SIM está disponible en un dispositivo Android?
Respuesta
Use TelephonyManager.
http://developer.android.com/reference/android/telephony/TelephonyManager.html
Como notas Falmarri, que se desee utilizar getPhoneType En primer lugar, para ver si está incluso tratando con un teléfono GSM. Si es así, entonces también puede obtener el estado 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;
}
EDIT:
A partir de API 26 (Android O Vista previa de) puede consultar la SIMSTATE de ranuras de tarjeta SIM individuales utilizando getSimState(int slotIndex)
es decir:
int simStateMain = telMgr.getSimState(0);
int simStateSecond = telMgr.getSimState(1);
Si está desarrollando con API y más, puede utilizar 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
que se añadió en la API 23 - docs here
gracias por su respuesta, hágamelo saber cómo comprobar si el número de teléfono ingresado es válido desde el directorio telefónico –
¿Cómo funciona esto para dispositivos con doble SIM? – gonzobrains
Usted puede consultar con el código de abajo:
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);
}
Encontré otra forma de hacerlo.
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;
}
- 1. Prueba en dispositivo iPhone sin tarjeta SIM
- 2. Tarjeta SIM Dual Android
- 3. Android tarjeta SIM dual API
- 4. Cómo simular una tarjeta SIM para Android
- 5. ¿Cómo puedo verificar si un dispositivo Android está conectado a la web?
- 6. Cómo verificar si la carpeta recién creada está presente en la tarjeta SD en Android
- 7. ¿Cómo puedo verificar cuánto espacio libre tiene una tarjeta SD montada en un dispositivo Android?
- 8. Cómo (rápidamente) verificar si la ruta UNC está disponible
- 9. ¿Cómo saber si la tarjeta SD está montada en Android?
- 10. ¿Cómo puedo verificar si el Android Market está instalado en el dispositivo de mi usuario?
- 11. Compruebe si la aplicación está disponible en Android Market
- 12. ¿Cómo saber si un dispositivo en particular tiene soporte para hardware SIM?
- 13. ¿Cómo puedo verificar si un complemento jQuery está cargado?
- 14. ¿Debo verificar LSRequiresIPhoneOS para ver si la cámara está disponible?
- 15. ¿Cómo puedo verificar si el teléfono Android se está cargando?
- 16. ¿Puedo leer una tarjeta HID iClass con un dispositivo Android?
- 17. ¿cómo puedo verificar si un giroscopio está presente en el dispositivo?
- 18. Evento cuando se cambia la tarjeta SIM
- 19. cómo comenzar con la tarjeta java en las tarjetas SIM
- 20. Cómo verificar si un archivo existe en un directorio en la tarjeta SD
- 21. cómo comprobar la red wifi o 3g está disponible en el dispositivo Android
- 22. ¿Cómo puedo verificar si un JSON está vacío en NodeJS?
- 23. ¿Cómo puedo verificar si un filehandle está abierto en Perl?
- 24. Cómo verificar si la alarma está configurada
- 25. ¿Cómo determinar si un dispositivo Android está rooteado programáticamente?
- 26. Compruebe si la tarjeta SD está disponible o no mediante programación
- 27. Dual Sim Android
- 28. ¿Cómo determinar el número de tarjetas SIM en un dispositivo?
- 29. Cómo almacenar datos de aplicaciones de Android en la tarjeta SIM usando NFC?
- 30. Comprobar si existe directorio en la tarjeta SD de Android
¿Qué pasa con los teléfonos CDMA que no tienen tarjetas SIM? – Falmarri
@Senthil Mg Hola, ¿puedes decirme cómo saber si la tarjeta SIM está disponible en el teléfono o no? Quiero decir, lo intenté con el Administrador de telefonía, pero no puedo obtener la respuesta adecuada. ¿Puede darme un ejemplo simple para que yo pueda entender mejor? – anddev
@Mansi Vora, especifique claramente el problema al que se enfrenta, ¿ha revisado la respuesta a continuación para esto? –