我想在Android中以编程方式获取SIM1和SIM2手机号码。我尝试使用电话管理器和订阅管理器。但总是我得到空值。我认为这是由于Google阻止了此功能的安全性问题。这个问题有没有其他选择。
仅供参考,我在清单文件中保留了READ_PHONE_STATE权限,并且还询问了运行时权限
使用电话管理器:
TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String yourNumber = mTelephonyMgr.getLine1Number();
使用订阅管理器
rrayList<String> Numbers = new ArrayList<String>();
SubscriptionManager mSubscriptionManager = SubscriptionManager.from(SimDetection.this);
subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
if (subInfoList.size() > 1) {
isMultiSimEnabled = true;
}
for (SubscriptionInfo subscriptionInfo : subInfoList) {
Numbers.add(subscriptionInfo.getNumber());
}