Android:如何确定实际的移动运营商名称?

Android: how can you determine the actual mobile carrier name?

我有一个应用程序试图确定不同位置的移动网络质量,然后将其与 phone 上正在使用的网络相关联。

要获取移动运营商,我正在使用

TelephonyManager manager = (TelephonyManager)mContext.getSystemService(
  Context.TELEPHONY_SERVICE);
String carrierName = manager.getNetworkOperatorName();

这通常有效,但在某些情况下,我得到的结果是 "Fi Network"。由于 Google Fi 在美国的 T-Mobile、Sprint 和 US Celluar 之间切换,我想知道实际使用的是哪个运营商,所以我可以用它来判断网络质量。

有没有 API 可以告诉我 phone 实际使用的是哪些运营商?

TelephonyManager.getSimOperator() will return MCC & MNC 应该唯一标识运营商的代码,您可以轻松地在线找到将 MCC+MNC 映射到运营商名称的列表。