Как узнать идентификатор устройства android studio

Лучший способ получить идентификатор устройства в Android

Мне просто интересно, что было бы лучше, чтобы получить идентификатор устройства. У меня есть 2 варианта, либо я использую приведенный ниже код, который требует разрешения во время выполнения android.permission.READ_PHONE_STATE —

Во-вторых, у меня есть опция UUID, которая не требует разрешения во время выполнения, но должна быть сопоставлена с данными пользователя (такими как электронная почта или телефон) для идентификации.

Любые предложения, какие из них использовать и почему будут оценены.

4 ответа

Идентификатор Android:

При первой загрузке устройства генерируется и сохраняется случайное значение. Это значение доступно через Settings.Secure.ANDROID_ID. Это 64-разрядное число, которое должно оставаться постоянным в течение всего срока службы устройства. ANDROID_ID кажется хорошим выбором для уникального идентификатора устройства, поскольку он доступен для смартфонов и планшетов.

Вопросы : Однако значение может измениться, если на устройстве выполнен сброс к заводским настройкам. Существует также известная ошибка с популярной трубкой от производителя, где каждый экземпляр имеет одинаковый ANDROID_ID. Понятно, что решение не является надежным на 100%.

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

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

ЗАКЛЮЧЕНИЕ:

Определить конкретное устройство на Android не так-то просто. Есть много веских причин, чтобы этого избежать. Лучшее решение, вероятно, состоит в том, чтобы идентифицировать конкретную установку с помощью решения UUID. Однако, если вы хотите абсолютно идентифицировать конкретное устройство физически, вы можете попробовать использовать решение ANDROID_ID. Не на 100% надежно, но лучше, чем другое решение.

Чтобы получить идентификатор устройства вы можете использовать

Источник

Русские Блоги

Уникальная идентификация Android-устройства

Предисловие

Недавно я хотел узнать о получении уникальной идентификации устройства, и тут у меня заболела голова. тогда. . . . . .
Подведем итоги сегодня.

Разница между IMEI, MEID, ESN, IMSI, android_id

Давайте сначала определим несколько концепций, которые способствуют следующему развитию:
1.IMEI

  • (IMEI: международный идентификационный номер мобильного оборудования) — это знак, который определяет мобильное оборудование. Он хранится в мобильном оборудовании и может использоваться для отслеживания украденного или недействительного мобильного оборудования. Состав IMEI показан на рисунке ниже. Наберите «* # 06 #», чтобы найти его.
  • Общая длина составляет 15 цифр, и для каждой цифры используются только 0–9 цифр. Среди них TAC представляет собой код сборки модели, присвоенный Европейским центром стандартизации моделей; FAC представляет номер производителя сборки; SNR — серийный номер продукта, используемый для различения каждого мобильного устройства в одном TAC и FAC; SP — резервный код.

IMEI состоит из 15 цифр, а его состав:
1. Первые 6 цифр (TAC) — это «номер утверждения модели», который обычно представляет модель.
2. Следующие две цифры (FAC) — это «окончательный номер сборки», который обычно обозначает место производства.
3. Следующие 6 цифр (SNR) — это «серийный номер», который обычно представляет собой производственный порядковый номер.
4. Последняя цифра (SP) обычно «0», это контрольный код, который в настоящее время зарезервирован.

Роль строкового кода:
IMEI: TAC + FAC + SNR + SP. IMEI (International Mobile Equipment Identity) — это аббревиатура от International Mobile Equipment Identity. International Mobile Equipment Identity — это «электронный серийный номер», состоящий из 15 цифр. Он соответствует каждому мобильному телефону один за другим, а код является всемирным. только. После сборки каждому мобильному телефону будет присвоен глобально уникальный набор номеров, который будет записан производителем от производства до доставки.
Когда мобильный телефон украден, если вы знаете код IEMI, вы можете заблокировать мобильный телефон через оператора мобильной связи, то есть узнать номер мобильного телефона после кражи, отключить функцию вызова мобильного телефона и узнать номер мобильного телефона. должность. В обычных условиях поставщики не принимают запросы от частных лиц или организаций на обнаружение или блокировку мобильных телефонов. В Китае соответствующие департаменты национальной безопасности будут в определенной степени управлять серийными номерами мобильных телефонов.

  • Идентификатор мобильного оборудования (MEID) — единственный 56-битный идентификационный номер мобильного терминала в мире. Идентификационный номер будет записан в терминал и не может быть изменен. Может использоваться для идентификации и отслеживания мобильных устройств. Поскольку сегмент номера ESN является ограниченным ресурсом, он в основном исчерпан, и может быть небольшое количество повторно используемых сегментов номера, поэтому 56-битный сегмент номера MEID был разработан для замены 32-битного сегмента номера ESN. MEID в основном используется для мобильных телефонов CDMA.
  • Из-за увеличения числа мобильных устройств CDMA исходного 8-битного ESN недостаточно, поэтому получился MEID 56 бит = (56/4 = 14 байтов). Современные мобильные телефоны CDMA обычно имеют как ESN / MEID. MEID также выражается в шестнадцатеричном формате.

MEID идентифицируется 14 шестнадцатеричными цифрами, а 15-я цифра является контрольной цифрой, которая не участвует в эфирной передаче.
RR: диапазон A0-FF, выделенный официальным лицом
XXXXXX: диапазон 000000-FFFFFF, выделенный официальным
ZZZZZZ: диапазон 000000-FFFFFF, серийный номер, присвоенный каждому терминалу производителем.
C / CD: 0-F, проверьте код

Номера IMEI и MEID в мобильных телефонах похожи на идентификационные карты в нашей жизни. Они являются важной основой для идентификации мобильных телефонов. Например, мобильные телефоны с ложными номерами, операторы сети могут в любой момент отключить этот мобильный телефон в сети с помощью технических средств. Это принесет огромные риски пользователям мобильных телефонов. На номера IMEI или MEID, используемые в мобильных телефонах, можно по закону подать заявку через соответствующие агентства, такие как Moore Laboratories.
Кроме того, приложение MEID требует оплаты. Текущая цена составляет 8000 долларов США за каждый MEID в диапазоне 1M и дополнительные 8000 долларов США за каждый дополнительный номер MEID в диапазоне 1M.
Номера MEID назначаются и управляются Ассоциацией телекоммуникационной индустрии (TIA).
Проверка номера MEID, в настоящее время не существует универсального метода, который устанавливается каждым производителем мобильных телефонов. Вы можете проверить номер MEID, проверив инструкцию к телефону.

  • Электронный серийный номер в системе CDMA является уникальным идентификатором для идентификации физического аппаратного устройства. Другими словами, каждый мобильный телефон использует этот уникальный идентификатор для идентификации, как и личная идентификационная карта. ESN в CDMA соответствует IMEI в сети GSM. ESN имеет 32 бита,
  • То есть 32/4 = 8 байтов. С увеличением количества мобильных устройств CDMA ESN становится недостаточно, поэтому вводится MEID с большим количеством цифр. ESN выражается в шестнадцатеричном формате.
  • Международный идентификационный номер мобильного абонента (IMSI: International Mobile Subscriber Identification Number) — это знак, который различает мобильных пользователей. Он хранится на SIM-карте и может использоваться для отличия эффективной информации от мобильных пользователей.
  • Общая длина IMSI не превышает 15 цифр, также используются числа от 0 до 9. Среди них MCC — это код страны мобильного пользователя, который занимает 3 цифры. MCC Китая определяет его как 460; MNC — это номер мобильной сети, состоящий из двух цифр, используемый для идентификации сети мобильной связи, к которой принадлежит мобильный пользователь;
  • MSIN — это идентификационный код мобильного пользователя, используемый для идентификации мобильных пользователей в сети мобильной связи.
  • Уникальный идентификационный код устройства Android

Согласно приведенному выше резюме, соответствующая информация о вашем мобильном телефоне выглядит следующим образом:
meid[99000939335539]
imei1[863254036690765]
imei2[863254036690773]
simSerialNumber [89860117801033225378]
subscriberId [460011691516816]
Это телефоны Huawei:
MEID:A000007F2C4002
IMEI1:866957038217380
IMEI2:866957038364067
PESN:802B5D2A
SN:8BN02179015937
Поскольку мой мобильный телефон поддерживает две SIM-карты, у меня есть два номера imei.

Получите анализ уникальной идентификации Android

1. DEVICE_ID, разные мобильные устройства возвращают IMEI, MEID или ESN код

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

Немобильное устройство: если только устройство с Wi-Fi или музыкальный проигрыватель не имеет аппаратной функции для звонков, такого DEVICE_ID нет.
Разрешение: для получения DEVICE_ID требуется разрешение READ_PHONE_STATE, но если мы его только получаем и не используем другие функции вызова, то это разрешение слишком велико для использования

1.1 Sim Serial Number — уникальный идентификатор SIM-карты мобильного телефона.

код показан ниже:

Читайте также:  Asus руководство android 4

Примечание. Для устройств CDMA возвращается нулевое значение.

1.2 Некоторые другие значения, которые может получить TelephonyManager

Дополнительные сведения о TelephonyManager см. В этом блоге.Telephonymanager подробно

2. MAC-адрес

MAC-адрес глобально уникален и не может быть сброшен пользователем, а также не изменится после восстановления заводских настроек. Как правило, не рекомендуется использовать MAC-адреса для какой-либо формы идентификации пользователя. Поэтому начиная с Android M,Больше не доступно через сторонние APIMAC-адрес локального устройства (например, WLAN и Bluetooth). [WifiInfo.getMacAddress()] Методы и [BluetoothAdapter.getDefaultAdapter().getAddress()] Метод вернет 02:00:00:00:00:00 。

Есть способы получить MAC-адрес 8.0wifi в Интернете:

Вышеупомянутый метод доступен как для мобильных телефонов Xiaomi Android 8.0, так и для мобильных телефонов Huawei Honor 8.0. Остальные телефоны не тестировал.

заметка:
Чтобы получить MAC-адрес, он должен быть подключен к сети Wi-Fi, иначе соответствующее имя не будет получено.

3.ANDROID_ID

Когда устройство запускается в первый раз, система случайным образом сгенерирует 64-битное число и сохранит его в виде шестнадцатеричной строки. Эта шестнадцатеричная строка — ANDROID_ID. При очистке устройства значение будет Сброс.
можно получить следующим способом:

ANDROID_ID можно использовать как идентификацию устройства, но вам нужно обратить внимание на:
1. Ошибка индивидуальной системы производителя: разные устройства могут генерировать один и тот же ANDROID_ID: 9774d56d682e549c.
2. Ошибка индивидуальной системы производителя: некоторые устройства возвращают null.
3. Различия между устройствами. Для устройств CDMA ANDROID_ID и TelephonyManager.getDeviceId () возвращают одно и то же значение.

4. серийный номер

Серийный номер можно получить с помощью следующего метода для системы Android версии 2.3 и выше, и немобильные устройства также могут получить его через этот интерфейс.

4.1 Некоторые значения, которые можно получить в android.os.Build

Непосредственно по коду:

Читайте также:  Switch android set on you

Ниже приводится соответствующая информация, полученная Huawei Honor 9 и Xiaomi:

Serial_Num: 8BN0217919015937
Manufacturer: HUAWEI
Model: STF-AL00
Brand: HONOR
Device: HWSTF
Ниже представлена ​​соответствующая информация о Mi 6.
Sim_SN: 89860117801033225378
Manufacturer: Xiaomi
Model: MI 6
Brand: Xiaomi
Device: sagit

5. ID установки

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

Приведенный выше код также можно реализовать с помощью SharedPreferences:

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

Прежде всего, мы должны сначала выяснить конкретные потребности нашего оборудования для отслеживания. В настоящее время существует не более двух видов спроса:

  • 1. Отслеживайте оборудование на уровне цикла использования пользовательского оборудования.
    означает рассматривать устройство как новое устройство каждый раз, когда пользователь стирает данные с устройства и восстанавливает заводские настройки.
  • 2. Отслеживание оборудования на аппаратном уровне.
    означает, что устройство следует рассматривать как то же устройство после удаления данных или восстановления заводских настроек.

1. Отслеживайте использование оборудования пользователем на уровне

Теоретически значения Android_ID нам достаточно для выполнения этого требования, но именно из-за недостатков в Android_ID мы не можем напрямую идентифицировать устройство. Здесь мы используем несколько значений, чтобы избежать этих недостатков.
Я рекомендую использовать Android_ID и серийный номер Sim для идентификаторов, связанных с жизненным циклом пользовательского оборудования. Кроме того, можно добавить Device_ID, а идентификатор устройства можно вычислить и сгенерировать с помощью UUID или MD5.

  • Реализация UUID:
  • Реализация MD5 (алгоритм MD5 см. Ниже):
Читайте также:  Анимированный экран блокировки для android

2. Отслеживание оборудования на аппаратном уровне.

Для отслеживания устройств на аппаратном уровне рекомендуется использовать идентификаторы оборудования, такие как идентификатор устройства (DeviceId), Mac-адрес, серийный номер устройства (SN) или марка устройства, название модели и т. Д. Эти значения вводятся после того, как пользователь удалит данные или восстановит заводские настройки. Это не изменится. Точно так же, чтобы повысить стабильность и устранить дефекты одного идентификатора, мы используем несколько идентификаторов для объединения, а затем вычисляем нужный нам идентификатор устройства с помощью алгоритма UUID или MD5.

  • Реализация UUID:
  • Реализация MD5 (алгоритм MD5 см. Ниже):

Чтобы дополнить требуемый выше md5:

Важная вещь в реальном бою выше — это мысль.

подводить итоги

Резюме выше, я почти сумасшедший. Эта работа относительно тривиальна, без чувства системы. Свяжите один кусок и соедините вместе. Боже мой! ! !

Источник

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