我正在开发一个应用程序,该应用程序需要接收短信的设备(带有多个 SIM 卡)的 IMSI/电话号码。
这基本上是为了识别哪个 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();