Можно ли программно получить номера телефонов обеих сим-карт в Android.

Я ссылался на один из предложенных ранее ответов и редактировал его, потому что в этом ответе индекс sim не проверен. Вот что я использовал.

SubscriptionManager subscriptionManager = SubscriptionManager.from(getApplicationContext());
        List<SubscriptionInfo> subsInfoList = subscriptionManager.getActiveSubscriptionInfoList();



        for (SubscriptionInfo subscriptionInfo : subsInfoList) {
            Log.d("Test", "Current list = " + subscriptionInfo);
            Integer index=subscriptionInfo.getSimSlotIndex();
            if(index==1)
            {
                Log.d("Test", " Number is  " + subscriptionInfo.getNumber());
            }
            else
                Log.d("Test", " Number is  " + subscriptionInfo.getNumber());
        }

Но я не могу получить номер сима, используемого в слоте 1, получено только количество сима в индексе 0.

Вот логкат

Current list = {id=2, iccId=89918620400015502403 simSlotIndex=0 displayName=Jio 4G 01 carrierName=Jio 4G nameSource=0 iconTint=-16746133 dataRoaming=1 iconBitmap=android.graphics.Bitmap@6443203 mcc 405 mnc 862}
D/Test:  Number is  1234567//It's a made up number. I did get my actual number
D/Test: Current list = {id=3, iccId=89919509129941235317 simSlotIndex=1 displayName=airtel 02 carrierName=airtel nameSource=0 iconTint=-13408298 dataRoaming=1 iconBitmap=android.graphics.Bitmap@3986580 mcc 404 mnc 95}
D/Test:  Number is 

Как видно из logcat, я не могу получить номер для сима в slotindex 1. Можно получить много других деталей 2-й симы, включая отображаемое имя, имя оператора и т. Д. Но subscriptionInfo.getNumber() работает только для одной симки.

0 ответов

Другие вопросы по тегам