Je voulais désactiver les fonctions liées aux appels et aux SMS dans mon application selon que le matériel SIM est présent ou non. Une approche de débutant pour cela serait de vérifier le type de téléphone en utilisant :
if (telephonyManager1.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE)
Si c'est le cas, elle est soutenue.
Tout allait bien jusqu'à ce que je tombe sur la Sony Tablet S dont la carte SIM ne supporte que les données et la messagerie. Pas de support vocal. Pour cet appareil, je dois donc désactiver uniquement la fonction APPEL mais continuer à prendre en charge les SMS. La tablette Sony renvoie TelephonyManager.PHONE_TYPE_NONE et je ne peux donc pas utiliser les méthodes ci-dessus. Aussi ,
telephonyManager1.getSimState();
renvoie 1, c'est-à-dire SIM_STATE_ABSENT, ce qui est également le cas pour le HTC FLYER qui ne prend pas en charge le matériel SIM lui-même.
Existe-t-il un moyen de savoir si le matériel SIM est présent (indépendamment de la carte SIM insérée ou non) ?