Android-设备工具类JDeviceUtil

来源:互联网 发布:淘宝开店电脑认证入口 编辑:程序博客网 时间:2024/06/06 00:35
/** * 设备工具类 * Created by Jzd on 2017/12/8. */public class JDeviceUtil{    public static DisplayMetrics getDisplayMetrics(Context context)    {        WindowManager windowManager = (WindowManager)    context.getSystemService(Context.WINDOW_SERVICE);        DisplayMetrics displayMetrics = new DisplayMetrics();        windowManager.getDefaultDisplay()                .getMetrics(displayMetrics);        return displayMetrics;    }    /**     * 获取APP屏幕高     */    public static int getScreenHeight(Context context)    {        return getDisplayMetrics(context).heightPixels;    }    /**     * 获取APP屏幕宽     */    public static int getScreenWidth(Context context)    {        return getDisplayMetrics(context).widthPixels;    }    /**     * 获取设备的屏幕高     */    public static int getSysScreenHeight(Context context)    {        return context.getResources()                .getDisplayMetrics().heightPixels;    }    /**     * 获取设备的屏幕高     */    public static int getSysScreenWidth(Context context)    {        return context.getResources()                .getDisplayMetrics().widthPixels;    }    /**     * 获取设备的屏幕密度     */    public static float getScreenDensity(Context context)    {        return context.getResources()                .getDisplayMetrics().density;    }    /**     * 获取IMEI     * <li>只有手机才有imei</li>     * <li>需要 android.Manifest.permission.READ_PHONE_STATE 权限,6.0以后动态申请</li>     * <li>可能为空</li>     */    @SuppressLint("HardwareIds")    public static String getIMEI(Context context)    {        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);        if(isPhone(context))        {            if(Build.VERSION.SDK_INT >= 26)            {                return telephonyManager.getImei();            } else            {                return telephonyManager.getDeviceId();            }        }        return null;    }    /**     * 获取android设备码     * <li>可能相同或为空</li>     * <li>恢复出场设置可能会重置</li>     */    public static String getAndroidId(Context context)    {        return Settings.System.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);    }    /**     * 获取设备唯一编码     */    public static String getDeviceUniqueCode(Context context)    {        String phoneName = Build.MODEL;// 型号        String factoryName = Build.MANUFACTURER;// 品牌        String serialNumber = getSerialNumber();        if(serialNumber == null || serialNumber.isEmpty())        {            serialNumber = getAndroidId(context);        }        return factoryName + "-" + phoneName + "-" + serialNumber;    }    /**     * 序列号     */    public static String getSerialNumber()    {        String serial = null;        try        {            Class<?> c = Class.forName("android.os.SystemProperties");            Method get = c.getMethod("get", String.class);            serial = (String) get.invoke(c, "ro.serialno");        } catch(Exception e)        {            e.printStackTrace();        }        return serial;    }    /**     * 是否为手机     */    public static boolean isPhone(Context context)    {        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);        return telephonyManager.getPhoneType() != TelephonyManager.PHONE_TYPE_NONE;    }    /**     * 拨打电话     * 需添加权限 {@code <uses-permission android:name="android.permission.CALL_PHONE"/>}     */    public static Intent call(Context context, String phoneNumber)    {        return new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber));    }    /**     * 发送短信     */    public static Intent sendSms(Context context, String phoneNumber, String content)    {        Uri uri = Uri.parse("smsto:" + (phoneNumber == null ? "" : phoneNumber));        Intent intent = new Intent(Intent.ACTION_SENDTO, uri);        intent.putExtra("sms_body", content == null ? "" : content);        return intent;    }}
原创粉丝点击