我正在开发一个应用程序,该应用程序需要接收短信的设备的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();