8

SIMハードウェアが存在するかどうかに基づいて、アプリケーションのCALLおよびSMSに関連する機能を無効にしたかったのです。これに向けた初心者のアプローチは、以下を使用して電話の種類を確認することです。

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

trueの場合、サポートされます。

データとメッセージングのみをSIMでサポートしているSonyTabletSに出くわすまでは、すべて問題ありませんでした。音声サポートはありません。したがって、このデバイスでは、CALL機能のみを無効にする必要がありますが、SMSサポートを続行します。SonyタブレットはTelephonyManager.PHONE_TYPE_NONEを返すため、上記のメソッドを使用できません。また 、

telephonyManager1.getSimState();

1、つまりSIM_STATE_ABSENTを返します。これは、SIMハードウェア自体をサポートしていないHTCFLYERの場合も同じです。

それで、SIMハードウェアがそこにあるかどうかを知ることができる方法はありますか(SIMカードが挿入されているかどうかに関係なく)?

4

1 に答える 1

0

使用する

PackageManager pm = this.getPackageManager();
boolean hasTelephony=pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY);

編集:

使ってみて

TelephonyManager.getLine1Number()

これが null を返す場合、テレフォニー機能はありません。試していません。試してみます

于 2012-08-17T09:51:14.260 に答える