如何在android中获取传入号码的运营商名称?

时间:2012-10-01 08:16:23

标签: android telephonymanager

我可以使用以下代码段获取运营商名称:

TelephonyManager telephonyManager = ((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE));
String operatorName = telephonyManager.getNetworkOperatorName();

它工作得很好。

我还可以使用以下代码段获取来电号码:

private final PhoneStateListener phoneStateListener = new PhoneStateListener() {

    @Override
    public void onCallStateChanged(int state, String incomingNumber) {
        String callState = "UNKNOWN";
        switch (state) {
            case TelephonyManager.CALL_STATE_RINGING:
        }
    }
}

我想找出传入号码的运营商名称/服务提供商名称。 我怎样才能做到这一点?
是否可以获得传入号码的位置,例如国家?

3 个答案:

答案 0 :(得分:3)

使用Android API无法获取任何手机号码的运营商名称。至少不是那么容易(你可能会陷入一些隐私相关的问题)。

阅读本文以获取更多信息:

http://sms411.net/2006/07/finding-out-someones-carrier/

当然你可以尝试找到原始载体(使用前缀),但这可能与实际载体有所不同......

答案 1 :(得分:2)

无法以编程方式检索主叫方运营商的详细信息。此外,由于号码可携带性,无法从呼叫者的电话号码中检索运营商的名称。但是,您可以从数字的前几位获取国家/地区信息。有关详细信息,请参阅List of country calling codes

答案 2 :(得分:0)

来自API Level 22(Andrid 5.1)的

此API可用。

label