我发现检索MCC和MNC的唯一方法是通过重写 Activity 的onConfigurationChanged方法,如下所示:
public void onConfigurationChanged(Configuration config)
{
super.onConfigurationChanged(config);
DeviceData.MCC = "" + config.mcc;
DeviceData.MNC = "" +config.mnc;
}
但是,我需要在应用启动后立即获取这些数据,不能等待用户切换手机的方向或等效方式来触发此方法。有没有更好的方法来访问当前的Configuration对象?
最佳答案
TelephonyManager提供了一种方法,可以将MCC + MNC作为字符串(getNetworkOperator())返回,该方法可以满足您的需求。您可以通过以下方式访问它:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TelephonyManager tel = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String networkOperator = tel.getNetworkOperator();
if (!TextUtils.isEmpty(networkOperator)) {
int mcc = Integer.parseInt(networkOperator.substring(0, 3));
int mnc = Integer.parseInt(networkOperator.substring(3));
}
}