Получить программный код программно - Android

Можно ли получить программный номер каждого устройства программно? Я пробовал этот код:

TelephonyManager manager =(TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
mPhoneNumber = manager.getLine1Number();

Это отлично работает с некоторыми провайдерами. К сожалению, это не работает с каждым провайдером. Поэтому я ищу трюк или работу, чтобы получить номер телефона устройства. Есть ли решение или это невозможно, потому что номер не сохраняется на SIM-карте?

Ответы

Ответ 1

Используемый вами метод является единственной частью SDK для этого и работает только на устройствах, где номер хранится на SIM-карте, что делают только некоторые операторы. Для всех других носителей вам нужно будет попросить пользователя ввести номер телефона вручную, так как номер просто не сохраняется в любом месте устройства, откуда вы можете его получить.

Ответ 2

@Raghav прав, из-за моего предложения, вы должны использовать Shared Preference, чтобы сначала сохранить номер телефона пользователя, когда приложение открыто, и после этого номер пользователя будет использоваться, когда вам нужно приложение.

Ответ 3

Вы можете попытаться отправить определенное SMS-сообщение для интернет-провайдера. Например, в Пекине (Китай), когда вы отправляете SMS "501" до 10001, вы получите свой номер телефона в полученном сообщении. Затем вам нужно только знать, как отправить SMS и зарегистрировать BroadcastReceiver для получения сообщения.

Ответ 4

существует другой подход, которому нужен номер панели SMS, такой как 5000, 3000 или т.д. сначала создайте уникальный идентификатор для своего приложения, чтобы хранить его в своей базе данных, затем когда основной запуск активности отправляет текстовое сообщение на вашу панель SMS с идентификатором приложения в сообщении, а затем в веб-программировании, когда вы получили номер отправителя SMS-сообщения с его идентификатором, а затем обратно в приложение отправите запрос с идентификатором на ваш веб-сайт, чтобы получить (например, Http или доступ непосредственно к базе данных web sql) номер телефона, который хранится с этим Id