1、黑屏
/**
* 判断是否黑屏
* @param c
* @return
*/
public final static boolean isScreenLocked(Context c) {
android.app.KeyguardManager mKeyguardManager = (KeyguardManager) c.getSystemService(c.KEYGUARD_SERVICE);
return !mKeyguardManager.inKeyguardRestrictedInputMode();
}
2、锁屏
锁屏的判断,没有直接的方法,但是在Android的监听机制中,有一些事件可以进行判断:
Intent.ACTION_SCREEN_ON //当按下电源键,屏幕亮起的时候
Intent.ACTION_SCREEN_OFF //当按下电源键,屏幕变黑的时候
Intent.ACTION_USER_PRESENT //当解除锁屏的时候
我们当时的应用环境是在某一个activity中使用,并且该activity已经继承了其他类,所以采用了动态注册的方法:
1、在oncreate()方法中,注册监听事件
// 注册事件
registerReceiver(myReceiver, new IntentFilter(Intent.ACTION_SCREEN_ON));
registerReceiver(myReceiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));
registerReceiver(myReceiver, new IntentFilter(Intent.ACTION_USER_PRESENT));
2、写一个内部BroadcastReceiver
private BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if (Intent.ACTION_SCREEN_ON.equals(intent.getAction()) ) {//当按下电源键,屏幕亮起的时候
}
if (Intent.ACTION_SCREEN_OFF.equals(intent.getAction()) ) {//当按下电源键,屏幕变黑的时候
islockScreen = true;
}
if (Intent.ACTION_USER_PRESENT.equals(intent.getAction()) ) {//当解除锁屏的时候
islockScreen = false;
}
}
};