- 判断程序是否退到后台
/**
* 程序是否退到后台
* @param context
* @return
*/
public static boolean isBackground(Context context) {
ActivityManager activityManager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> appProcesses = activityManager
.getRunningAppProcesses();
for (RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.processName.equals(context.getPackageName())) {
if (appProcess.importance != RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
return true;
} else {
return false;
}
}
}
return true;
}
- 获取屏幕相关参数
/**
* 获取屏幕分辨率
* @param context
* @return
*/
public static int[] getScreenDisplay(Context context){
DisplayMetrics dm = new DisplayMetrics();
((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(dm);
int result[] = {dm.widthPixels,dm.heightPixels};
return result;
}
/**
* 获取屏幕宽度
* @param context
* @return
*/
public static int getWidth(Context context){
int result[] = getScreenDisplay(context);
return result[0];
}
/**
* 获取屏幕宽度
* @param context
* @return
*/
public static int getHeight(Context context){
int result[] = getScreenDisplay(context);
return result[1];
}
/**
* 获取屏幕的原始高度(屏幕有虚拟按键时包含虚拟按键的高度)
* @param context
* @return
*/
public static int getScreenDpi(Context context){
int dpi = 0;
Display display = ((Activity)context).getWindowManager().getDefaultDisplay();
DisplayMetrics dm = new DisplayMetrics();
@SuppressWarnings("rawtypes")
Class c;
try {
c = Class.forName("android.view.Display");
@SuppressWarnings("unchecked")
Method method = c.getMethod("getRealMetrics", DisplayMetrics.class);
method.invoke(display, dm);
dpi = dm.heightPixels;
} catch (Exception e) {
e.printStackTrace();
}
return dpi;
}
/**
* 获取状态栏高度
* @param context
* @return
*/
public static int getStatusBarHeight(Context context){
Rect rect = new Rect();
((Activity)context).getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
int statusHeight = rect.top;//状态栏高度
int bottomHeight = rect.bottom;//底部高度
return statusHeight;
}
/**
* dp转像素
* @param context
* @param dpValue
* @return
*/
public static int dip2px(Context context , float dpValue){
float scale = context.getResources().getDisplayMetrics().density;
return (int) (scale * dpValue + 0.5f);
}
/**
* 屏幕是否锁屏
* @param context
* @return
* true 屏幕处于解锁状态或锁屏状态
* flase 目前未锁屏
*/
public static boolean isRestricted(Context context){
KeyguardManager mKeyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
return mKeyguardManager.inKeyguardRestrictedInputMode();
}