我正在开发一个应用程序,该应用程序需要设备的IMSI /电话号码(带有多个SIM卡)才能收到短信。
这基本上用于识别SIM卡正在接收短信并稍后执行进一步操作的目的。
我已经彻底搜索了SMSMessage Api,但找不到合适的解决方案。
非常感谢任何帮助。
答案 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();