1

在我的应用程序中,我需要获取 SIM 卡号。我得到了SIMCardInfo.getIMSI(),但以其他格式。

我的 SIM 号码是 89919400002018929130,但我得到的是:404940.20.189291.3

我使用了以下代码:

   try 
    {
       currentSimNo = GPRSInfo.imeiToString(SIMCardInfo.getIMSI());
    } 
    catch (Exception e) 
    {

    }
4

2 回答 2

2

imeiToString采用IMEI而不是IMSI

于 2010-12-13T14:42:17.483 回答
1

sampath 说:

我的 SIM 号码是 89919400002018929130,但我得到的是:404940.20.189291.3

如果我排列您的两个数字并删除分隔符,它们看起来确实大致相同:

89919400002018929130
    404940201892913

你从哪里得到第一个?

关于IMSI的维基百科文章中,您可以看到前三位是MCC,后三位是MNC。所以看起来你的 SIM 卡来自印度,虽然我没有看到匹配 940 的跨国公司。

这些值经常被编码为二进制编码的 decimal,这就是需要使用 imeiToString 方法的原因。

编辑

IMSI 维基百科文章还提到:

IMSI 通常显示为 15 位长数字,但可以更短。

我认为您的代码将正确的值返回为404940201892913. 无论您尝试将其与 (899194...) 进行比较的任何数字,都必须以不同的方式进行编码。

于 2010-12-13T16:12:39.010 回答