从传入消息(SMS)获取IMSI号码或目的地电话号码

时间:2013-04-29 12:57:09

标签: android sms

我正在开发一个应用程序,该应用程序需要设备的IMSI /电话号码(带有多个SIM卡)才能收到短信。

这基本上用于识别SIM卡正在接收短信并稍后执行进一步操作的目的。

我已经彻底搜索了SMSMessage Api,但找不到合适的解决方案。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

据我所知,您无法从收到的短信中获取目的地电话号码,IMSI。

您可以通过这种方式获取IMS的IMSI和电话号码。

您可以获得SIMI的SIMI号码,但我认为您无法获得所有SIM卡的电话号码,因为某些制造商没有在SIM卡中保存电话号码,因此您将获得NULL。

在Android中,无法使用Android SDK获取第二张SIM信息。您只能获取第一张SIM的信息。

Android SDK支持第一个SIM信息,双SIM卡功能可从制造商处获得,因此Android SDK无法正式支持。

添加此AndroidManifest.xml

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

将此添加到您想要获取SIM详细信息的位置。

TelephonyManager telemamanger = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

获取第一张SIM的IMSI

String imsi = telemamanger.getSimSerialNumber();

获取第一张SIM卡的电话号码

if(telemamanger.getLine1Number() != null)
    String phoneNumber = telemamanger.getLine1Number();