¿Cómo saber si un dispositivo en particular tiene soporte de hardware SIM?

Quería deshabilitar las funciones relacionadas con CALL y SMS en mi aplicación en función de si el hardware de SIM está presente o no. Ahora, un enfoque de principiantes hacia esto será verificar el tipo de teléfono usando:

if (telephonyManager1.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE)

Si es cierto, entonces es compatible.

Todo estuvo bien hasta que me encontré con Sony Tablet S, que tiene un soporte de SIM solo para datos y mensajería. No hay soporte de voz. Por lo tanto, para este dispositivo necesito deshabilitar solo la función LLAMAR pero continuar con el soporte de SMS. La tableta de Sony devuelve TelephonyManager.PHONE_TYPE_NONE por lo que no puedo usar los métodos anteriores. También ,

telephonyManager1.getSimState();

devuelve 1, es decir, SIM_STATE_ABSENT, que también es igual en el caso de HTC FLYER, que no admite el hardware de SIM en sí.

Entonces, ¿hay alguna forma en la que pueda saber si el hardware de la SIM está allí (independientemente de que la tarjeta SIM esté insertada o no)?

Respuestas a la pregunta(1)

Su respuesta a la pregunta