3

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

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

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

任何帮助将不胜感激。

4

1 回答 1

4

据我所知,您无法从传入的短信中获取目标电话号码 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();
于 2013-04-29T13:01:05.937 回答