package com.themagpi.android; import java.util.UUID; import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.provider.Settings; import android.telephony.TelephonyManager; public class Utils { public static String getDeviceId(Context context) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); String id = prefs.getString("device_id", null); if (id == null) { id = generateDeviceId(context); SharedPreferences.Editor editor = prefs.edit(); editor.putString("device_id", id); editor.commit(); } return id; } private static String generateDeviceId(Context context) { TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); String tmDevice = String.valueOf(tm.getDeviceId()); String tmSerial = String.valueOf(tm.getSimSerialNumber()); String androidId = String.valueOf(Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID)); UUID deviceUuid = new UUID(androidId.hashCode(), ((long) tmDevice.hashCode() << 32) | tmSerial.hashCode()); String UUID = deviceUuid.toString(); UUID = UUID.replaceAll("[^a-z0-9]", ""); while (UUID.length() < 32) { UUID = "0" + UUID; } return UUID; } }