Как программно получить мобильные номера SIM1 и SIM2 в Android - PullRequest
0 голосов
/ 18 января 2019

Я хочу получить мобильные номера SIM1 и SIM2 программно в Android. Я пытался использовать Диспетчер телефонии и Диспетчер подписок. Но я всегда получаю нулевые значения. Я думал, что это связано с проблемой безопасности Google помешал этой функции. Есть ли альтернатива для этого вопроса.

К вашему сведению, я сохранил разрешение READ_PHONE_STATE в файле манифеста и также запрашиваю разрешение во время выполнения

Использование диспетчера телефонии :

TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String yourNumber = mTelephonyMgr.getLine1Number();

Использование диспетчера подписок

rrayList<String> Numbers = new ArrayList<String>();
    SubscriptionManager mSubscriptionManager = SubscriptionManager.from(SimDetection.this);
    subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
    if (subInfoList.size() > 1) {
        isMultiSimEnabled = true;
    }
    for (SubscriptionInfo subscriptionInfo : subInfoList) {
        Numbers.add(subscriptionInfo.getNumber());
    }
...