телефонный номер Android - PullRequest
       10

телефонный номер Android

2 голосов
/ 28 ноября 2011

Я хочу отобразить свой номер телефона при открытии приложения, но я получаю исключение, сообщающее

Приложение Телефон неожиданно остановилось ().Пожалуйста, попробуйте еще раз.

Я уже добавил Read_Phone_State разрешение в файле манифеста.

public class Telephone extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        View v = new View(this);
        v.setTag("The Number is : " + getMyTenDigitsNumber());
        setContentView(v);

    }

    private String getTelephone() {
        TelephonyManager tm;
        tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        return tm.getLine1Number();

    }

    private String getMyTenDigitsNumber() {
        String s = getTelephone();
        return s.substring(3);
    }
}

Ответы [ 2 ]

1 голос
/ 28 ноября 2011

Вероятно, что getLine1Number возвращает ноль, поэтому ваша последующая операция с подстрокой выдает NullPointerException (вы должны быть в состоянии проверить через logcat).Согласно документации для метода, он может возвратить ноль, если номер недоступен.Возможно, ваш провайдер не хранит номер телефона на SIM-карте, поэтому в этом случае номер может быть недоступен для этого метода.

0 голосов
/ 28 ноября 2011

Возможно, что getLine1Number () возвращает ноль, и, следовательно, ваша операция с подстрокой выдает NPE. getLine1Number () возвращает значение NULL, когда номер недоступен, например, когда не вставлена ​​SIM-карта или номер не сохранен на SIM-карте. Чтобы проверить, доступен ли номер, перейдите в «Настройки» -> «О телефоне» -> «Состояние» и проверьте, отображается ли ваш номер в поле «Мой номер телефона».

...