android studio номер телефона

Как получить номер телефона или информацию о SIM-карте с помощью Android Studio? (симкарта 1 или 2)

Я использовал этот код:

И я также добавил разрешения в AndroidManifest:

Но все гаджеты, которые я применяю, не могут получить номер телефона или всегда генерируют нулевое значение.

И это build.gradle, который я использую:

2 ответа

Нет надежного способа получить номер телефона с SIM-карты. TelephonyManager считывает номер телефона с SIM-карты, но операторы связи могут добавить эту информацию на SIM-карту.

Большинство операторов связи не добавляют эту информацию в SIM-карту, поэтому она недостаточно надежна.

Существует способ использовать Google-Play-Service для получения номера телефона, но он также не гарантирует 100% возврата номера телефона. Вы можете сделать это следующим образом:

Добавьте следующие зависимости в build.gradle :

Создайте две константы в MainActivity.java :

В onclick по вашей кнопке добавьте следующее:

Добавить onActivityResult

4-й курс/Закрытая зона

Метки: ACTION_DIAL , TelephonyManager , PhoneStateListener

Многие программисты даже стали забывать, что сотовый телефон изначально предназначен для телефонных звонков. Android имеет API для поддержки телефонии, что позволяет получить доступ к низкоуровневому аппаратному стеку телефона. Вы можете в своей программе инициировать набор номера или интегрировать обработку звонков и отслеживание состояния телефона в свои проекты.

Требование к устройству

Не всякое Android-устройство является телефоном. Если ваша программа использует телефонию, то указанные выше примеры помогут отсечь устройства при установке из Google Play.

Аналогично, если ваше приложение может использовать телефонию в каких-то ситуациях, то нужно устроить проверку на поддержку телефонии устройством.

Телефонные звонки

Чтобы просто вызвать стандартную звонилку, нужно вызвать намерение с параметром ACTION_DIAL

Также можно отобразить экран для набора номера и сразу передать ему конкретный номер, позволяя стандартному приложению самому управлять инициализацией вызова (системное телефонное приложение предлагает решать пользователю, делать вызов или нет). Этот подход не требует никаких полномочий и считается стандартным путем осуществления звонков из сторонних приложений:

Используя намерение для того, чтобы объявить необходимость набрать номер, ваше приложение может оставаться независимым от реализации программы, которая занимается непосредственно дозвоном. Например, если вы на своём устройстве заменили стандартное приложение на гибридное, совместимое с IP-телефонией, вышеописанный подход позволит другим приложениям получить доступ к новым возможностям.

Открыть звонилку и набрать заданный номер. Требуются разрешения android.permission.CALL_PHONE и CALL_PRIVILEGED (для экстренных вызовов)

Вы вошли на сайт, как гость.
Необходимо зарегистрироваться, чтобы прочитать статью

Хочу узнать номер телефона, использую стандартный метод, но возвращает null:

2 ответа 2

В интернетах говорят, что это единственный способ. Который работает не всегда. Говорят, что работает только в тех случаях, когда номер телефона записан в сим-карте. Если не записан (например, операторский телефон, который без симки работает, и т. п.) — номер получить не удастся. Буду рад ошибаться.

Скорее всего больше никак. Аналогично у вас номер и в настройках телефона не отображается. У меня то же самое было на всех симках Теле2.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками android java или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459

Оцените статью