package com.yuyh.library.utils; import android.annotation.TargetApi; import android.app.ActivityManager; import android.content.Context; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.Build; import android.os.SystemClock; import android.telephony.TelephonyManager; import android.text.format.Formatter; import android.util.DisplayMetrics; import com.yuyh.library.utils.log.LogUtils; /** * @author yuyh. * @date 16/4/9. */ public class DeviceUtils { private static final String TAG = DeviceUtils.class.getSimpleName(); private static final String CMCC_ISP = "46000";//中国移动 private static final String CMCC2_ISP = "46002";//中国移动 private static final String CU_ISP = "46001";//中国联通 private static final String CT_ISP = "46003";//中国电信 /** * 获取设备的系统版本号 */ public static int getDeviceSDK() { int sdk = android.os.Build.VERSION.SDK_INT; return sdk; } /** * 获取设备的型号 */ public static String getDeviceName() { String model = android.os.Build.MODEL; return model; } public static String getIMSI(Context context) { TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); String IMSI = telephonyManager.getSubscriberId(); return IMSI; } public static String getIMEI(Context context) { TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); String IMEI = telephonyManager.getDeviceId(); return IMEI; } /** * 获取手机网络运营商类型 * * @param context * @return */ public static String getPhoneISP(Context context) { if (context == null) { return ""; } TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); String teleCompany = ""; String np = manager.getNetworkOperator(); if (np != null) { if (np.equals(CMCC_ISP) || np.equals(CMCC2_ISP)) { teleCompany = "中国移动"; } else if (np.startsWith(CU_ISP)) { teleCompany = "中国联通"; } else if (np.startsWith(CT_ISP)) { teleCompany = "中国电信"; } } return teleCompany; } /** * 获取屏幕信息 * * @param context * @return */ public static DisplayMetrics getDisplayMetrics(Context context) { DisplayMetrics dm = context.getResources().getDisplayMetrics(); return dm; } /** * 获取/打印屏幕信息 * * @param context * @return */ public static DisplayMetrics printDisplayInfo(Context context) { DisplayMetrics dm = getDisplayMetrics(context); StringBuilder sb = new StringBuilder(); sb.append("\ndensity :").append(dm.density); sb.append("\ndensityDpi :").append(dm.densityDpi); sb.append("\nheightPixels :").append(dm.heightPixels); sb.append("\nwidthPixels :").append(dm.widthPixels); sb.append("\nscaledDensity :").append(dm.scaledDensity); sb.append("\nxdpi :").append(dm.xdpi); sb.append("\nydpi :").append(dm.ydpi); LogUtils.i(TAG, sb.toString()); return dm; } /** * 获取系统当前可用内存大小 * * @param context * @return */ @TargetApi(Build.VERSION_CODES.CUPCAKE) public static String getAvailMemory(Context context) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo(); am.getMemoryInfo(mi); return Formatter.formatFileSize(context, mi.availMem);// 将获取的内存大小规格化 } /** * 获取 MAC 地址 * 须配置android.permission.ACCESS_WIFI_STATE权限 */ public static String getMacAddress(Context context) { //wifi mac地址 WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); String mac = info.getMacAddress(); LogUtils.i(TAG, " MAC:" + mac); return mac; } /** * 获取 开机时间 */ public static String getBootTimeString() { long ut = SystemClock.elapsedRealtime() / 1000; int h = (int) ((ut / 3600)); int m = (int) ((ut / 60) % 60); LogUtils.i(TAG, h + ":" + m); return h + ":" + m; } }