经过对论坛的大量研究,现在我知道在双SIM卡手机中无法找到两张SIM卡的IMSI或SIM序列号(除了联系制造商).现在我改变的问题是,我们可以检测到手机有两个SIM吗?我相信它可以用一些智慧来检测.我能想到的几个方法是:
拨打USSD代码并跟踪IMEI号码的日志(我在印度尝试使用*139#.它有效.)这将给我SIM卡的IMEI号,我从中拨打了USSD代码.(假设手机遵循Android指南并且有两个IMEI号码.)
存储SIM的SIM序列号和/或IMSI.并且在检测到任何其他IMSI /序列号之后,即使手机没有重新启动(即SIM切换),也可以通过跟踪某些日志或某些广播事件处理来实现.
通过拨打*06#,您将看到两个IMEI号码.通过某种方式,获得这两个数字.(像屏幕捕获和文本图像解析之类的东西.)
如果有人能想到其他方式,他们是最受欢迎的.我真的很感激这方面的任何帮助.此外,如果任何人有关于任何制造商API或链接的任何信息,请与社区人员分享.
关于通过Android SDK访问双SIM卡功能有几个问题,所有这些问题都通过简短的声明来回答,这些声明在Android中不支持这些功能.
尽管如此,双SIM卡手机确实存在,而像MultiSim这样的应用似乎能够以某种独立于制造商的方式检测到这一点.
所以,从这个承认开始,让我试着提出一些更尖锐的问题:
(顺便说一下,所有这一切只是为了实现这个算法:用SIM卡1发送短信;如果发送失败,切换到SIM卡2并重新发送消息.)
对于单个SIM代码以下代码:
TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String imei= tm.getDeviceId();
Run Code Online (Sandbox Code Playgroud)
对于双SIM卡,我在以下链接上尝试了代码:
但它对我没有用.
如果有任何其他解决方案,请告诉我.
双SIM卡手机getLine1Number()的TelephonyManager退货方式是什么LG Optimus Net Dual?
我做了一个网络监控应用程序.在这里,我成功地实现了所有的事情.我有双卡通android手机.我知道如何获得运营商的名称.但我想知道哪个SIM连接到互联网?我使用过此代码,仅向用户显示设备是通过移动数据连接的.我想更具体地说,该设备目前正在使用哪个运营商的互联网.
public static String isInternetConnected (Context ctx) {
ConnectivityManager connectivityMgr = (ConnectivityManager) ctx
.getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo wifi = connectivityMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = connectivityMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
// Check if wifi or mobile network is available or not. If any of them is
// available or connected then it will return true, otherwise false;
if (wifi != null) {
if (wifi.isConnected()) {
return "wifi";
}
}
if (mobile != null) {
if (mobile.isConnected()) {
return "mobile";
}
}
return "none";
}
Run Code Online (Sandbox Code Playgroud) 我试图检查我的移动设备是否是双卡,如果sim1准备就绪,如果sim2准备就绪,我使用java反射完成,现在我想知道sim1是否正在发光,如果sim2是正在发光,如果它的双SIM卡,默认设置为sim.是否可以借助java反射.
我可以从决斗SIM手机获得运营商名称.
我使用了以下代码,但它仅适用于单个SIM卡手机.
TelephonyManager telephonyManager = ((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE));
Run Code Online (Sandbox Code Playgroud)