import android.app.Activity;
import android.app.KeyguardManager;
import android.app.KeyguardManager.KeyguardLock;
import android.content.Context;
import android.graphics.Rect;
import android.os.Build;
import android.os.PowerManager;
import android.util.DisplayMetrics;
import android.view.View;
@SuppressWarnings("deprecation")
public class ScreenUtils {
/**
* 解锁屏幕
*
* @param context
*/
public static void unlockScreen(Context context) {
KeyguardManager km = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock kl = km.newKeyguardLock("unLock");
kl.disableKeyguard();
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.SCREEN_DIM_WAKE_LOCK, "bright");
wl.acquire(1000);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
wl.release();
}
}
/**
* 判断是否锁屏状态
*
* @param context
* @return
*/
public final static boolean isScreenLocked(Context context) {
if (null != context) {
android.app.KeyguardManager mKeyguardManager = (KeyguardManager) context.getSystemService(
Context.KEYGUARD_SERVICE);
//* 如果flag为true,表示有两种状态:a、屏幕是黑的 b、目前正处于解锁状态 。
//* 如果flag为false,表示目前未锁屏
//* 关闭屏幕不等于锁屏
return mKeyguardManager.inKeyguardRestrictedInputMode();
}
return false;
}
/**
* 为true,则表示屏幕“亮”了,否则屏幕“暗”了。
*
* @param context
* @return
*/
public final static boolean isScreenOn(Context context) {
if (null != context) {
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
return pm.isScreenOn();
}
return false;
}
/**
* 屏幕屏幕密度
*
* @param context
* @return
*/
public static float getScreenDensity(Context context) {
if (null != context) {
return context.getResources().getDisplayMetrics().density;
}
return 0;
}
/**
* 屏幕宽度
*
* @param context
* @return
*/
public static int getScreenWidth(Context context) {
if (null != context) {
return context.getResources().getDisplayMetrics().widthPixels;
}
return 0;
}
/**
* 屏幕高度
*/
public static int getScreenHeight(Context context) {
if (null != context) {
return context.getResources().getDisplayMetrics().heightPixels;
}
return 0;
}
/**
* 获取状态栏高度——方法4
* 状态栏高度 = 屏幕高度 - 应用区高度
* *注意*该方法不能在初始化的时候用
* */
public static int getStausBarHeight(Context context) {
int statusBar=PixelUtil.dp2px(20, context);
try{
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen",
"android");
if (resourceId > 0) {
statusBar = context.getResources().getDimensionPixelSize(resourceId);
}
}catch (Exception e){
}
return statusBar;
}
ScreenUtils Android屏幕工具类
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- APP启动时经常会有一张启动图片,有几秒钟的展示时间,做法很简单,使用Handler的postDelayed方法即...
- Android开发中我们经常需要用到将dip、px相互换算、获取手机屏幕的宽度、高度以及状态栏高度等,如下是基于屏...