Уникальный идентификатор устройства - очень полезное свойство, особенно при работе с клиентами при помощи локальной сети или Интернета. В этой статье рассказано, как получить 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();