Jak sprawdzić, czy dane urządzenie ma obsługę sprzętu SIM?

Chciałem wyłączyć funkcje związane z CALL i SMS w mojej aplikacji na podstawie tego, czy sprzęt SIM jest obecny, czy nie. Teraz podejście początkujące do tego będzie polegało na sprawdzaniu typu telefonu za pomocą:

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

Jeśli to prawda, to jest obsługiwane.

Wszystko było w porządku, dopóki nie natknąłem się na tablet Sony S, który obsługuje karty SIM tylko dla danych i wiadomości. Brak obsługi głosowej. Więc dla tego urządzenia muszę wyłączyć tylko funkcję CALL, ale kontynuować obsługę SMS. Tablet Sony zwraca TelephonyManager.PHONE_TYPE_NONE, więc nie mogę korzystać z powyższych metod. Również ,

telephonyManager1.getSimState();

zwraca 1 to znaczy SIM_STATE_ABSENT, który jest również taki sam w przypadku HTC FLYER, który nie obsługuje samego sprzętu SIM.

Czy jest więc jakiś sposób, w jaki mogę się dowiedzieć, czy istnieje sprzęt SIM (niezależnie od włożonej lub nie karty SIM)?

questionAnswers(1)

yourAnswerToTheQuestion