Como descobrir se um determinado dispositivo tem suporte para o hardware do SIM?

Eu queria desativar os recursos relacionados a CALL e SMS no meu aplicativo com base em se o hardware do SIM está presente ou não. Agora, uma abordagem iniciante para isso será verificar o tipo de telefone usando:

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

Se for verdade, então é suportado.

Tudo estava bem até me deparar com Sony Tablet S, que tem um suporte SIM apenas para dados e mensagens. Nenhum suporte de voz. Portanto, para este dispositivo, preciso desabilitar somente o recurso CALL, mas continuo com o suporte por SMS. O tablet Sony retorna o TelephonyManager.PHONE_TYPE_NONE, portanto, não posso usar os métodos acima. Além disso ,

telephonyManager1.getSimState();

retorna 1, ou seja, SIM_STATE_ABSENT, que também é o mesmo no caso do HTC FLYER, que não tem suporte para o próprio hardware SIM.

Então, há alguma maneira em que eu possa vir a saber se o hardware do SIM está lá (independentemente do cartão SIM inserido ou não)?

questionAnswers(1)

yourAnswerToTheQuestion