как получить мой номер телефона в Android 2.2

Я программирую приложения в Android 2.2. Я пытался получить свой номер телефона в Android, но не могу... Как показано ниже, это мой код для получения номера телефона: (устройство для приложений - SamSung Galaxy Plus)

public static String getMyPhoneNumber(Context aContext){
    TelephonyManager mTelephonyMgr;
    mTelephonyMgr = (TelephonyManager) aContext
            .getSystemService(Context.TELEPHONY_SERVICE);
    return mTelephonyMgr.getLine1Number();
}

String phone = getMyPhoneNumber(getApplicationContext());// return "" in here

Я добавил «android.permission.READ_PHONE_STATE» в Androidmanifest.xml, но когда я запускаю приложения, телефон ПУСТОЙ...

Я не знаю почему, хотя я получаю "getSimSerialNumber(), getSimOperatorName(),getSimOperator(),..." в порядке!

Метод "getLine1Number()" всегда возвращает значение "". Если вы это знаете, пожалуйста, помогите мне!


person Bulma    schedule 23.11.2011    source источник
comment
Вы можете увидеть свой номер телефона в устройстве в разделе - настройки › о телефоне › статус › Мой номер телефона .. ? если вы не можете, ОС Android не знает ваш номер телефона, поэтому не может дать его вам.   -  person Joe    schedule 23.11.2011
comment
stackoverflow.com/questions/10465835 / проверьте также эту тему   -  person MKJParekh    schedule 22.06.2012


Ответы (3)


Попробуйте использовать getSubscriberId(), который является IMSI для телефона.

person pdt    schedule 23.11.2011
comment
Я исправил это :)... Спасибо всем - person Bulma; 24.11.2011
comment
хорошо, что вы исправили свою проблему .. но ваш вопрос заключался в том, чтобы получить номер телефона, что означает, что контакт не имеет права .. !! и в ответе предлагается IMSI .. Поэтому я бы предложил отредактировать ваш вопрос на IMSI с номера телефона. - person MKJParekh; 17.05.2012

Убедитесь, что ваш номер виден в Settings->About phone->State->Phone number, иначе вы, вероятно, не сможете его получить.

Он не будет отображать ваш номер телефона, пока он не будет написан на вашей мобильной SIM-карте, поэтому попробуйте сменить SIM-карту, чтобы при смене SIM-карты и если номер телефона был написан там, он отображал номер телефона.

person Robert    schedule 23.11.2011
comment
когда я перехожу на другую сим-карту, я получаю номер телефона в порядке. Почему есть разница между типом SIM-карты. - person Bulma; 23.11.2011

Если вы хотите получить номер телефона вашего мобильного телефона, в который вставлена ​​сим-карта, например, +92xxxxxx,+42xxxxxxx,+1xxxxxx этого типа, просто скопируйте этот код в свои приложения.

TelephonyManager phn_mngr = (TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
String PhnNo= phn_mngr.getLine1Number();
person Pir Fahim Shah    schedule 19.12.2012