Bug 921112 - Expose MCC/MNC in payments on Android. r=mfinkle

This commit is contained in:
Wes Johnston
2013-11-25 09:42:25 -08:00
parent f8d352c8a9
commit dae206e20d
6 changed files with 218 additions and 8 deletions

View File

@@ -95,6 +95,11 @@ public class GeckoNetworkManager extends BroadcastReceiver {
NETWORK_UNKNOWN
}
private enum InfoType {
MCC,
MNC
}
private Context mApplicationContext;
private NetworkType mNetworkType = NetworkType.NETWORK_NONE;
private IntentFilter mNetworkFilter = new IntentFilter();
@@ -322,4 +327,32 @@ public class GeckoNetworkManager extends BroadcastReceiver {
return false;
}
}
private static int getNetworkOperator(InfoType type) {
TelephonyManager tel = (TelephonyManager)sInstance.mApplicationContext.getSystemService(Context.TELEPHONY_SERVICE);
if (tel == null) {
Log.e(LOGTAG, "Telephony service does not exist");
return -1;
}
String networkOperator = tel.getNetworkOperator();
if (networkOperator == null || networkOperator.length() <= 3) {
return -1;
}
if (type == InfoType.MNC) {
return Integer.parseInt(networkOperator.substring(3));
} else if (type == InfoType.MCC) {
return Integer.parseInt(networkOperator.substring(0, 3));
}
return -1;
}
public static int getMCC() {
return getNetworkOperator(InfoType.MCC);
}
public static int getMNC() {
return getNetworkOperator(InfoType.MNC);
}
}