2
public String getSubscriberId(){
    operator = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
    String IMSI = operator.getSubscriberId();
    return IMSI;
}

simID = (TextView) findViewById(R.id.text2);
    simIMSI = getSubscriberId().toString();

    if (simIMSI.equals("")){
        simID.setText("No SIM card detected!");
    }
    else{
        simID.setText(simIMSI.toString());
        SaveUniqueId(simIMSI.toString());
    }

電話のSIMカードIMSIを取得してレイアウトで表示したいのですが、エミュレーターにSIMカードが接続されていないことを知っていても、エミュレーターを使用してプログラムを実行しますが、「SIMカードが検出されませんでした」のような結果になるはずですよね? しかし、なぜこのコーディングでエラーが発生するのでしょうか、それとも「getSubscriberId()」で何か問題があるのでしょうか?

4

3 に答える 3

2
String serviceName = Context.TELEPHONY_SERVICE;
TelephonyManager m_telephonyManager = (TelephonyManager) getSystemService(serviceName);

それでは、実際のソースコードから始めて、情報を取得しましょう。-

public String findDeviceID() {
     String deviceID = null;
     String serviceName = Context.TELEPHONY_SERVICE;
     TelephonyManager m_telephonyManager = (TelephonyManager) getSystemService(serviceName);
     int deviceType = m_telephonyManager.getPhoneType();
     switch (deviceType) {
           case (TelephonyManager.PHONE_TYPE_GSM):
           break;
  case (TelephonyManager.PHONE_TYPE_CDMA):
  break;
  case (TelephonyManager.PHONE_TYPE_NONE):
  break;
          default:
         break;
     }
     deviceID = m_telephonyManager.getDeviceId();
     return deviceID;
}

詳細については、このサイトを参照してくださいhttp://ashnatechnologies.blogspot.in/2010/10/how-to-get-imei-on-android-devices.html

于 2012-05-21T08:58:18.670 に答える
0

このリンクにアクセスでき ます http://www.anddev.org/tinytut_-_getting_the_imsi_-_imei_sim-device_unique_ids-t446.html

IMSI には次のコードを使用します

String imsi = android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMSI);
于 2012-05-21T08:55:37.570 に答える