2

我正在尝试查找来电的网络和 SIM 运营商,但我找不到,我的代码只能找到我设备的网络和 SIM 运营商。

这是我的代码:

    if (TelephonyManager.EXTRA_STATE_RINGING.equals(state)) {                                   

        String phoneNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
        name = phoneNumber;

        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

        String networkOperator = telephonyManager.getNetworkOperatorName();

        String simOperator = telephonyManager.getSimOperatorName();

        Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber));


        Cursor cursor = context.getContentResolver().query(uri, new String[]{PhoneLookup.DISPLAY_NAME},null,null,null);
        if (cursor.moveToFirst())
        {
            name = cursor.getString(cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME));

        }   

欢迎任何帮助。

4

1 回答 1

0

您无法获得运营商,因为 android 没有为此提供 API:

从理论上讲,您可以获取号码的前缀并将其与所有提供商的列表进行比较,但是将您的号码带到具有旧前缀的不同提供商的能力几乎破坏了该选项。

于 2013-06-24T16:17:21.627 回答