例如,我有一个带有 Airtel 和 Vodafone sims 的双卡手机。我想知道我们能否获得两家网络提供商的 MCC 和 MNC。
我知道
使用getPhoneCount()我们可以知道一个设备有多少个模拟人生。
使用getNetworkOperator()我们可以获得活跃网络运营商的 MCC+MNC。
例如,我有一个带有 Airtel 和 Vodafone sims 的双卡手机。我想知道我们能否获得两家网络提供商的 MCC 和 MNC。
我知道
使用getPhoneCount()我们可以知道一个设备有多少个模拟人生。
使用getNetworkOperator()我们可以获得活跃网络运营商的 MCC+MNC。
以前没那么容易,但是在Lolipop版本之后你可以做到这一点。这是我的代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
SubscriptionManager subManager = (SubscriptionManager) getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
if (subManager.getActiveSubscriptionInfoCount() >= 1) {
List<SubscriptionInfo> subscriptionInfoList;
subscriptionInfoList=subManager.getActiveSubscriptionInfoList();
String carrierName = subscriptionInfoList.get(0).getCarrierName().toString();
int mccSlot1 = subscriptionInfoList.get(0).getMcc();
int mncSlot1 = subscriptionInfoList.get(0).getMnc();
Toast.makeText(MainActivity.this, "Sim slot 1 " + mccSlot1 + " " + mncSlot1 + "Name"+carrierName, Toast.LENGTH_SHORT).show();
String carrierName2 = subscriptionInfoList.get(1).getCarrierName().toString();
int mccSlot2 = subscriptionInfoList.get(1).getMcc();
int mncSlot2 = subscriptionInfoList.get(1).getMnc();
Toast.makeText(MainActivity.this, "Sim slot 2 " + mccSlot2 + " " + mncSlot2+"Name"+carrierName2, Toast.LENGTH_SHORT).show();
}
} else {
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
if (telephonyManager == null) {
return;
}
String mCCMncCode = telephonyManager.getNetworkOperator();
String mccCode = null;
String mncCode = null;
if (TextUtils.isEmpty(mCCMncCode)) {
return;
}
final int MNC_CODE_LENGTH = 3;
if (mCCMncCode.length() >= MNC_CODE_LENGTH) {
mccCode = mCCMncCode.substring(0, MNC_CODE_LENGTH);
}
if (mCCMncCode.length() > MNC_CODE_LENGTH) {
mncCode = mCCMncCode.substring(MNC_CODE_LENGTH);
}
Toast.makeText(MainActivity.this, "Lower than API 22 " + mccCode + " " + mncCode, Toast.LENGTH_SHORT).show();
return;
}
授予权限后,只需在您的 on create 方法中添加此代码即可。
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
注意:如果您在最新的 android 版本(如棉花糖、牛轧糖和奥利奥)上对此进行测试,那么您必须提供checkselfpermission
(运行时权限)。对于 Dual Sim 检查,请查看:答案