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 に答える