Могу ли я найти MCC + MNC сетевых провайдеров для muti sims
Например, у меня есть мобильный телефон с двумя симами с симками Airtel и Vodafone. Я хотел бы знать, можем ли мы получить MCC и MNC обоих сетевых провайдеров.
я знаю это
Использование getPhoneCount() Мы можем знать, сколько sims у устройства.
Используя getNetworkOperator() мы можем получить MCC+MNC активного оператора сети.
1 ответ
Раньше это было не так просто, но после версии 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;
}
Просто добавьте этот код в ваш метод создания после предоставления разрешения.
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
Примечание: если вы тестируете это на последних версиях Android, таких как marshmellow, nougat & oreo, то вы должны дать checkselfpermission
(Разрешения времени выполнения). Для проверки Dual Sim, посмотрите это: Ответ