您的位置:首页 > 移动开发 > Android开发

Android-设备工具类JDeviceUtil

2017-12-08 17:07 330 查看
/**
* 设备工具类
* 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屏幕高,可能会比getScreenHeight()小,因为可能会去掉装饰区域,在有虚拟按键的手机上要注意
*/
public static int getScreenHeight(Context context)
{
return getDisplayMetrics(context).heightPixels;
}

/**
* 获取APP屏幕宽
*/
public static int getScreenWidth(Context context)
{
return getDisplayMetrics(context).widthPixels;
}

/**
* 获取设备的屏幕高
*/
public static int getScreenHeight(Context context)
{
return context.getResources()
.getDisplayMetrics().heightPixels;
}

/**
* 获取设备的屏幕高
*/
public static int getScreenWidth(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)
{
Tel
4000
ephonyManager 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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息