/** * */ package com.mcxiaoke.minicat.util; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Build; import android.provider.Settings; import android.telephony.TelephonyManager; import android.util.Log; import com.mcxiaoke.minicat.AppContext; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.UUID; /** * @author mcxiaoke */ public final class DeviceHelper { private static String generateUUID() { String uuid = Settings.Secure.getString(AppContext.getApp() .getContentResolver(), Settings.Secure.ANDROID_ID); if (AppContext.DEBUG) Log.d("DeviceHelper", "generateUUID uuid=" + uuid); if (uuid == null || uuid.equals("9774d56d682e549c")) { uuid = UUID.randomUUID().toString(); if (AppContext.DEBUG) Log.d("DeviceHelper", "generateUUID randomid=" + uuid); } return uuid; } public static String getUserAgent() { StringBuilder builder = new StringBuilder(); builder.append("FanFou HD for Android ").append(AppContext.versionName) .append(" Build").append(AppContext.versionCode); builder.append(Build.MODEL).append(" ").append(Build.VERSION.RELEASE) .append(" (").append(Build.DEVICE).append(",") .append(Build.BRAND).append(",").append(Build.MANUFACTURER) .append(") "); return builder.toString(); } public static HashMap<String, String> getDeviceInfo(Context context) { HashMap<String, String> map = new HashMap<String, String>(); PackageManager pm = context.getPackageManager(); PackageInfo pi; try { pi = pm.getPackageInfo(context.getPackageName(), 0); } catch (NameNotFoundException e) { pi = new PackageInfo(); pi.versionName = "1.0"; pi.versionCode = 1; } String appName = pi.packageName; String appVersion = pi.versionName; String appVersionCode = String.valueOf(pi.versionCode); SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd_HH.mm.ss_zzz"); String date = sdf.format(new Date()); String api = String.valueOf(Build.VERSION.SDK_INT); String release = Build.VERSION.RELEASE; String manufacturer = Build.MANUFACTURER; String model = Build.MODEL; String product = Build.PRODUCT; String device = Build.FINGERPRINT; String locale = "" + context.getResources().getConfiguration().locale .getDisplayName(); String display = "" + context.getResources().getDisplayMetrics().toString(); String deviceId = "" + Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); map.put("appName", appName); map.put("appVersion", appVersion); map.put("apVersionCode", appVersionCode); map.put("date", date); map.put("api", api); map.put("release", release); map.put("manufacturer", manufacturer); map.put("model", model); map.put("product", product); map.put("locale", locale); map.put("device", device); map.put("display", display); map.put("device", device); map.put("deviceId", deviceId); return map; } public static String getDeviceId(Context context) { TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); // String imsi = ""+tm.getSubscriberId(); String imei = "" + tm.getDeviceId(); String sim = "" + tm.getSimSerialNumber(); String androidId = "" + Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); UUID uuid = new UUID(androidId.hashCode(), ((long) imei.hashCode() << 32) | sim.hashCode()); return uuid.toString(); } }