我正在为一个Android应用程序工作,需要从双SIM卡移动中检索/获取这两个SIM号码并应该显示给用户,基于用户选择特定的SIM号码 - 需要注册并将OTP发送到所选的SIM卡号。
我得到默认的SIM卡号码( sim-1或sim-2 )但是,我没有从双卡手机上获得两个SIM卡号码。
为此,我搜索了许多网站和链接。但是,我没有得到任何与我的要求相关的答案。
- 我使用了
TelephonyManager
类,但它只返回Line1号码。
TelephonyManager telephonyManager = ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE));
telephonyManager.getLine1Number();
- 我还尝试了
SubscriptionManager
类 - 从这个课程中我得到了两个数字但是,这些数字应该出现在 设置 - >模拟管理。对于某些设备,默认数字是 未知,太不可编辑。在这种情况下,我无法做到 取两个SIM号码。
try {
String simTwoNumber, simOneNumber;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
SubscriptionManager subManager = (SubscriptionManager) getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
List<SubscriptionInfo> subInfoList = null;
subInfoList = subManager.getActiveSubscriptionInfoList();
if (subInfoList != null && subInfoList.size() > 0) {
switch (subInfoList.size()) {
case 2:
simTwoNumber = subInfoList.get(1).getNumber();
case 1:
simOneNumber = subInfoList.get(0).getNumber();
break;
default:
break;
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
在Manifest
文件
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
任何人都可以帮我解决这个问题。或请给出任何建议,以编程方式在android中检索这两个SIM号码。
提前致谢。