3

アプリケーション内から、タブレットに SIM カード スロットがあるかどうかを確認する方法はありますか?

私の要件は、タブレットが Wi-Fi のみか、Wifi + Cellular ユニットかを調べることです。これについて Stack Overflow で提供されている以前のリンクを確認しましたが、どれも私のデバイスでは機能していないようです。Wifi のみのユニットはTYPE_MOBILE、ネットワーク情報の下に を返します。PHONE_TYPE_NONEWifi ユニットと Cellular ユニットの両方が aを返すSIM_STATE_UNKNOWNため、これらのチェックも適用されません。

どちらの場合も、返される IMEI は null です。SIM カード スロット内に有効な SIM カードが挿入されている場合、ユニットがセルラー ユニットであるかどうかを検証できますが、セルラー ユニットに SIM カードが挿入されていない場合、または SIM カード スロットが不良である場合は検証できません。セルラーユニットと wifi + セルラーユニットを区別する

4

2 に答える 2

3

このコードを試してください:

TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);  //gets the current TelephonyManager
if (tm.getSimState() != TelephonyManager.SIM_STATE_ABSENT){
  //the device has a sim card
} else {
  //no sim card available
}

ソース

于 2013-08-08T15:27:12.873 に答える
0

デバイスがサポートするネットワーク インターフェイスを確認できます。その後、ConnectivityManagerを使用して、デバイスがモバイル データ接続をサポートしているかどうかを確認できます。

ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm != null) {
    if (cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE) != null) {
        // the device can use mobile networks
    }
}
于 2013-10-25T15:43:48.467 に答える