Как получить уникальный идентификатор устройства (Device Id) в Android

октября
14
2012
Метки: android deviceid java

Уникальный идентификатор устройства - очень полезное свойство, особенно при работе с клиентами при помощи локальной сети или Интернета. В этой статье рассказано, как получить Device Id на платформе Android.

Для получения уникального идентификатора устройства, воспользуйтесь классом TelephonyManager:


TelephonyManager telephonyManager = (TelephonyManager) activity.getSystemService(Context.TELEPHONY_SERVICE);
String deviceId = telephonyManager.getDeviceId();

Также Вам понадобится добавить разрешение READ_PHONE_STATE в файл AndroidManifest.xml:


<manifest xlmns:android...>
 ...
 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
</manifest>

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


    final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);

    final String tmDevice, tmSerial, androidId;
    tmDevice = "" + tm.getDeviceId();
    tmSerial = "" + tm.getSimSerialNumber();
    androidId = "" + android.provider.Settings.Secure.getString(getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);

    UUID deviceUuid = new UUID(androidId.hashCode(), ((long)tmDevice.hashCode() << 32) | tmSerial.hashCode());
    String deviceId = deviceUuid.toString();

Напишите первое сообщение!

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