package com.yixia.camera.util; import android.content.Context; import android.content.pm.FeatureInfo; import android.content.pm.PackageManager; import android.content.res.Configuration; import android.os.Build; import android.util.TypedValue; import android.view.Display; import android.view.WindowManager; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; /** * 系统版本信息类 * * @author tangjun * */ public class DeviceUtils { /** >=2.2 */ public static boolean hasFroyo() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO; } /** >=2.3 */ public static boolean hasGingerbread() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD; } /** >=3.0 LEVEL:11 */ public static boolean hasHoneycomb() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB; } /** >=3.1 */ public static boolean hasHoneycombMR1() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1; } /** >=4.0 14 */ public static boolean hasICS() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH; } /** * >= 4.1 16 * * @return */ public static boolean hasJellyBean() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN; } /** >= 4.2 17 */ public static boolean hasJellyBeanMr1() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1; } /** >= 4.3 18 */ public static boolean hasJellyBeanMr2() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2; } /** >=4.4 19 */ public static boolean hasKitkat() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT; } public static int getSDKVersionInt() { return Build.VERSION.SDK_INT; } @SuppressWarnings("deprecation") public static String getSDKVersion() { return Build.VERSION.SDK; } /** * 获得设备的固件版本号 */ public static String getReleaseVersion() { return StringUtils.makeSafe(Build.VERSION.RELEASE); } /** 检测是否是中兴机器 */ public static boolean isZte() { return getDeviceModel().toLowerCase().indexOf("zte") != -1; } /** 判断是否是三星的手机 */ public static boolean isSamsung() { return getManufacturer().toLowerCase().indexOf("samsung") != -1; } /** 检测是否HTC手机 */ public static boolean isHTC() { return getManufacturer().toLowerCase().indexOf("htc") != -1; } /** * 检测当前设备是否是特定的设备 * * @param devices * @return */ public static boolean isDevice(String... devices) { String model = DeviceUtils.getDeviceModel(); if (devices != null && model != null) { for (String device : devices) { if (model.indexOf(device) != -1) { return true; } } } return false; } /** * 获得设备型号 * * @return */ public static String getDeviceModel() { return StringUtils.trim(Build.MODEL); } /** 获取厂商信息 */ public static String getManufacturer() { return StringUtils.trim(Build.MANUFACTURER); } /** * 判断是否是平板电脑 * * @param context * @return */ public static boolean isTablet(Context context) { return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE; } /** * 检测是否是平板电脑 * * @param context * @return */ public static boolean isHoneycombTablet(Context context) { return hasHoneycomb() && isTablet(context); } public static int dipToPX(final Context ctx, float dip) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dip, ctx.getResources().getDisplayMetrics()); } /** * 获取CPU的信息 * * @return */ public static String getCpuInfo() { String cpuInfo = ""; try { if (new File("/proc/cpuinfo").exists()) { FileReader fr = new FileReader("/proc/cpuinfo"); BufferedReader localBufferedReader = new BufferedReader(fr, 8192); cpuInfo = localBufferedReader.readLine(); localBufferedReader.close(); if (cpuInfo != null) { cpuInfo = cpuInfo.split(":")[1].trim().split(" ")[0]; } } } catch (IOException e) { } catch (Exception e) { } return cpuInfo; } /** 判断是否支持闪光灯 */ public static boolean isSupportCameraLedFlash(PackageManager pm) { if (pm != null) { FeatureInfo[] features = pm.getSystemAvailableFeatures(); if (features != null) { for (FeatureInfo f : features) { if (f != null && PackageManager.FEATURE_CAMERA_FLASH.equals(f.name)) //判断设备是否支持闪光灯 return true; } } } return false; } /** 检测设备是否支持相机 */ public static boolean isSupportCameraHardware(Context context) { if (context != null && context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)) { // this device has a camera return true; } else { // no camera on this device return false; } } /** 获取屏幕宽度 */ @SuppressWarnings("deprecation") public static int getScreenWidth(Context context) { Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); return display.getWidth(); } @SuppressWarnings("deprecation") public static int getScreenHeight(Context context) { Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); return display.getHeight(); } }