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



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

这基本上是为了识别哪个SIM正在接收短信,然后执行进一步的操作。

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

据我所知,您无法从传入短信中获得目的地电话号码,IMSI

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

你可以得到SIM的IMSI号码,但我不认为你能得到所有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();

最新更新