Псевдо-уникальный идентификатор, который работает на всех устройствах Android. На некоторых устройствах нет телефона (например, планшеты) или по какой-то причине вы не хотите включать разрешения READ_PHONE_STATE. Вы все еще можете читать такие данные, как ПЗУ, имя производителя, тип ЦП и другие детали оборудования, которые будут хорошо подходить, если вы хотите использовать идентификатор для проверки серийного ключа или других общих целей. Идентификатор, вычисленный таким образом, не будет уникальным: можно найти два устройства с одинаковым идентификатором (на основе одного и того же аппаратного и ROM-изображения), но шансы в реальных приложениях незначительны. Для этого вы можете использовать класс сборки:
String m_szDevIDShort = "35" + //we make this look like a valid IMEI
Build.BOARD.length()%10+ Build.BRAND.length()%10 +
Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 +
Build.DISPLAY.length()%10 + Build.HOST.length()%10 +
Build.ID.length()%10 + Build.MANUFACTURER.length()%10 +
Build.MODEL.length()%10 + Build.PRODUCT.length()%10 +
Build.TAGS.length()%10 + Build.TYPE.length()%10 +
Build.USER.length()%10 ; //13 digits
Большинство членов Строительства являются строками, что мы делаем здесь, чтобы взять их длину и преобразовать его с помощью по модулю в цифре. У нас есть 13 таких цифр, и мы добавляем еще два передних (35), чтобы иметь тот же ID размера, что и IMEI (15 цифр). Здесь есть и другие возможности, просто взгляните на эти строки.
Возвращает примерно следующее: 355715565309247.
Никаких специальных разрешений не требуется, поэтому этот подход очень удобен.
http://en.wikipedia.org/wiki/International_Mobile_Station_Equipment_Identity устройство уникальный идентификатор, номер IMEI, чем отличается для всех устройств. – Arnold
@Arnold: Иногда несколько устройств не возвращают IMEI. Например, таблетки. –