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 回答
0

这段代码应该可以工作。

String myIMSI =
android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMSI);
于 2013-06-25T07:25:56.667 回答